码迷,mamicode.com
首页 > 其他好文 > 详细

迭代法和穷举法

时间:2016-05-24 20:43:59      阅读:667      评论:0      收藏:0      [点我收藏+]

标签:

迭代法:
每次循环都要把某一个或多个变量不断放大,为的是下一次循环可以继续使用,最后达到最终的大小。
代表性的题:
1、累加求和
2、阶乘
3、折纸
int sum = 0;
for(int i=1;i<=10;i++)
{
  sum += i;
}

穷举法:
将所有的可能性都走一遍,然后判断符合条件的可能性,单独拿出来。
基本用法:
int count = 0;
for (int i = 1; i <= 15; i++) //1分的硬币
{
  for (int j = 1; j <= 7; j++)//2分的硬币
  {
    for (int u = 1; u <= 3; u++) //5分的硬币
    {
      if (i + (j * 2) + (u * 5) == 15) //****
      {
        Console.WriteLine("1分的需要" + i + "个,2分的需要" + j + "个,5分的需要" + u + "个");
        count++;
      }
    }
  }
}

Console.WriteLine("总共有" + count + "种可能性!");

 

 

练习1

百鸡百钱,有100文钱,要买100只鸡回家。公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,该如何买?

            int count = 0;//次数
            for (int i = 0; i <= 200; i++)//小鸡
            {
                for (int j = 0; j <= 100; j++)//母鸡
                {
                    for (int u = 0; u <= 50; u++)//公鸡
                    {
                        if ((i * 0.5) + j + (u * 2) == 100)
                        {
                            if (i+j+u==100)
                            {
                                Console.WriteLine("公鸡" + u + "只,母鸡" + j + "只,小鸡" + i + "只。");
                                count++;
                            }
                        }
                    }
                }
            }
            Console.WriteLine(count );
                Console.ReadLine();            

运算结果

技术分享

练习2

有三种硬币若干个,1分,2分,5分,如果要凑够1毛5,有哪些组合方式?
扩展:三种硬币最少都要有一个

            int count = 0;
            for (int i = 1; i <= 15; i++)
            {
                for (int j = 1; j <= 7; j++)
                {
                    for (int a = 1; a <= 3; a++)
                    {
                        if (i + (j * 2) + (a * 5) == 15)
                        {
                            Console.WriteLine("1分需要" + i + "个,2分需要" + j + "个,5分需要" + a + "");
                            count++;
                        }
                    }
                }
            }
            Console.WriteLine(count);
            Console.ReadLine();

运算结果

技术分享

迭代法和穷举法

标签:

原文地址:http://www.cnblogs.com/sunshuping/p/5524522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!