第9周项目6-穷举法解决组合问题(3,4)

  1. /*  
  2.  * Copyright (c) 2014, 烟台大学计算机学院  
  3.  * All rights reserved.  
  4.  * 文件名称:test.cpp  
  5.  * 作    者:刘畅   
  6.  * 完成日期:2014年 10 月 27 日  
  7.  * 版 本 号:v1.0  
  8.  *  
  9.  * 问题描述:用穷举法解决组合问题
  10. * 输入描述: 无输入;
  11.  * 程序输出:不造输出什么;
  12. */
  13. (1)年龄几何:张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。
  14. #include <iostream>
    using namespace std;
    int main()
    {
        int n,a,i,sum;
        cout<<"以张三、李四、王五、刘六的年龄为前4项的等差数列前20项依次为:"<<endl;
        for (n=1; n<=6; n++)
            for (a=1; a<=4; a++)
                if (4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880)
                    for (i=0; i<20; i++)
                    {
                        sum=n;
                        sum=sum+i*a;
                        cout<<sum<<" ";
                    }
    
    
        return 0;
    }
    
    

     
  15. 运行结果:
  16. 第9周项目6-穷举法解决组合问题(3,4)_第1张图片 
  17.  
  18. (2)三色球问题:若一个口袋中放有12个球,其中有3个红的,3个白的和6个黑的,问从中任取8个共有多少种不同的颜色搭配?
  19. #include <iostream>
    using namespace std;
    int main()
    {
        int i,j,count;
        cout<<"从中任取8个不同的颜色搭配方案有:"<<endl;
        for (i=0; i<=3; i++)
            for (j=0; j<=3; j++)
                if (8-i-j<=6)
                {
                    ++count;
                    cout<<"红球"<<i<<"个, "<<"白球"<<j<<"个, "<<"黑球"<<8-i-j<<"个"<<endl;
                }
    }
    

     
  20. 运行结果:
  21. 第9周项目6-穷举法解决组合问题(3,4)_第2张图片 
  22.  
  23. 知识点总结:
  24. 穷举法主要是要拥有比较好的逻辑思维能力,自顶向下,逐步求精。
  25.  
  26. 学习心得:
  27. 年龄几何的代码我昨天我写完后在codeblocks上运行了好几次,不管我怎么修改语句输出的结果都是错误的,最后因为赶着去体测就放弃了,今天重新编了一次终于发现错误,4*n+6*a==26被我打成了4*n+4*a==26。果然是错一个小数点都会使航天飞机坠落啊,要吸取教训了,以后要多注意。

你可能感兴趣的:(C++,namespace,iostream)