for的穷举、迭代

for的穷举

把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

例:

单位给发了一张150元购物卡,
拿着到超市买三类洗化用品。
洗发水15元,香皂2元,牙刷5元。
求刚好花完150元,有多少种买法,
每种买法都是各买几样?

设洗发水   x 150/15==10
牙刷         y 150/5==30
香皂         z 150/2==75

            int biao = 0;
            int sum = 0;
            for (int x = 0; x <= 10; x++)
            {
                for (int y = 0; y <= 30; y++)
                {
                    for (int z = 0; z <= 75; z++)
                    {
                        sum++;
                        if (x * 15 + y * 5 + z * 2 == 150)
                        {
                            biao++;
                            Console.WriteLine("这是第" + biao + "种买法:洗发水" + x + "瓶,牙刷" + y + "支,香皂" + z + "块。");
                        }
                    }
                }
            }
            Console.WriteLine("共有" + biao + "种买法!");
            Console.WriteLine(sum);

            Console.ReadLine();

例:

百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,
如何在凑够100只鸡的情况下刚好花完100文钱?

设g m x

g + m + x = 100;g*2+m+x*0.5=100

            int n = 0;
            for (int g = 1; g * 2 <= 100; g++)
            {
                for (int m = 1; m <= 100; m++)
                {
                    for (int x = 1; x * 0.5 <= 100; x++)
                    {
                        if (g * 2 + m + x * 0.5 == 100 && g + m + x == 100)
                        {
                            Console.WriteLine(g + "只公鸡" + m + "只母鸡" + x + "只小鸡" + "一共有" + (g + m + x) + "只鸡");
                            n++;
                        }
                    }
                }
            }

            Console.WriteLine(+n + "种可能性");
            Console.ReadLine();

例:

大马驼2石粮食,
中等马驼1石粮食,
两头小马驼1石粮食,
要用100匹马,驼100石粮食,该如何分配?

设 d z x         d*2+z+(0.5*x)=100;d+z+x=100;

            int n = 0;
            for (int d = 1; d * 2 <= 100; d++)
            {
                for (int z = 1; z <= 100; z++)
                {
                    for (int x = 1; 0.5 * x <= 100; x++)
                    {
                        if (d * 2 + z + 0.5 * x == 100 && d + z + x == 100)
                        {
                            Console.WriteLine("需要大马" + d + "头,中等马" + z + ",小马" + x + "头。");
                            n++;
                        }
                    }
                }
            }

            Console.WriteLine(n);
            Console.ReadLine();

例:

有1分钱,2分钱,5分钱的硬币,要组合出来2角钱,有几种组合方式,分别各多少个?

int sum = 0;
              for (int x = 0; x <= 20; x++)
              {
                  for (int y = 0; y <= 10; y++)
                  {
                      for (int z = 0; z <= 4; z++)
                      {
                          if (x + 2*  y + 5*  z == 20)
                          {
                              Console.WriteLine("一分钱 " + x + "个,两分钱 " + y + " 个,五分钱 " + z + " 个!");
                              sum++;
                          }
                      }
                  }
              }
              Console.WriteLine(sum);
              Console.ReadLine();

迭代:
从初始情况按照规律不断求解中间情况,最终推导出结果。

例:

纸张可以无限次对折,纸张厚度为0.07毫米。
问多少次对折至少可以超过8848?

            int a = 7;//884800000
            int i = 1;
            for (; ; )
            {
                a *= 2;//a=a*2;
                if (a >= 884800000)
                {
                    Console.WriteLine(i);
                    Console.WriteLine(a);
                    break;
                }
                i++;
            }

int a = 7;//884800000
int i = 1;

while(true)
{
a *= 2;

if (a >= 884800000)
{
Console.WriteLine(i);
Console.WriteLine(a);
break;
}
i++;
} 
时间: 2024-10-14 05:11:34

for的穷举、迭代的相关文章

穷举迭代03/10

穷举迭代03/10 for循环拥有两类: 1.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. for循环拥有两类: 2.穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. for循环  for(int i = 1; i<=5;i++) { 循环体: } while样式      int i= 1: while(表达式(i<=5)) { 循环体: 状态改变(i++): } do while 样式    do { 循环体: 状态改变(i++); }whi

for 穷举 迭代

for循环拥有两类:穷举:把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 迭代:从初始情况按照规律不断求解中间情况,最终推导出结果. 案例: //单位给发了一张150元购物卡, //拿着到超市买三类洗化用品. //洗发水15元,香皂2元,牙刷5元. //求刚好花完150元,有多少种买法, //每种买法都是各买几样? //设洗发水x 150/15==10 //牙刷y 150/5==30 //香皂z 150/2==75 int sum = 0; int biao = 0; for (

穷举 迭代 while

for循环拥有两类: 穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 例:1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都是各买几样? //洗发水 x  10         //牙刷    y  30         //香皂    z  75            int ci = 0;            int biao = 0;            for (int x

循环语句while与for的穷举迭代

循环语句while while当...的时候 int n=1; while(n<6)//在括号内直接限制逻辑关系 {//需要在大括号内给出改变方式,否则将进入死循环 console.WriteLine("打印结果"); n++;//在大括号内给与值得改变方式 } int m=1; while(true) { Console.WriteLine("打印结果"+m); m++; if(m==6) { break;//跳出语句,跳出循环 //continue--跳过

7.24 学习笔记 for循环的嵌套,for循环的穷举迭代

for循环的嵌套            输入一个正整数,求阶乘的和 嵌套            Console.Write("请输入一个正整数:");            int a = int.Parse(Console.ReadLine());            int sum = 0;            for (int i = 1; i <= a; i++)            {              int jie = 1;             

穷举 迭代

//1.一张150元购物卡,三类洗化用品,洗发水15元,香皂2元,牙刷5元 //求刚好花完150元,有多少种买法,每种买法各买几样? //洗发水 x 香皂 z 牙刷 y int count = 0; int bian = 0; for (int x = 0; x <= 10; x++) { for (int y = 0; y <= 30; y++) { for (int z = 0; z <= 75; z++) { bian++; if (15 * x + 5 * y + 2 * z =

2016年10月10日--穷举、迭代、while循环

穷举 将所有可能性全部全部走一遍,使用IF筛选出满足的情况 练习: 1.单位给发了一张150元购物卡, 拿着到超市买三类洗化用品. 洗发水15元,香皂2元,牙刷5元. 求刚好花完150元,有多少种买法, 没种买法都是各买几样? int i = 0; int j = 0; for (int x = 0; x <= 10; x++) { for (int y = 0; y <= 30; y++) { for (int z = 0; z <= 75; z++) { j++; if (x * 1

for循坏的穷举与迭代,while、do while循环

for循环 穷举:所有情况走一遍,使用if筛选出符合的情况. 1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花完150元,有多少种买法,没种买法都是各买几样? int d=0; int e = 0; for (int a = 1; a <= 10;a++ ) { for (int b = 1; b <= 30;b++ ) { for (int c = 1; c <= 75;c++ ) { if(a*15+b*5+c*2==150) {

while do while以及穷举和迭代

今天的新内容1:while循环 格式: while() { } 初始状态要在循环外提前规定 状态改变要写在花括号里面 括号内是循环条件 for循环与while循环的对比: 2:do while 不管循环条件是否满足 先执行一遍循环体 格式为: do { }while() 如上图 条件不满足 但仍然输出了一遍WORLD 3:穷举 经典题目百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱? 使用while循环实现: 4:迭代

穷举和迭代

通过循环可以解决两类问题:穷举:在不知道什么情况下才真的是我们需要的结果的时候,只能够让它一个一个的情况都给走一遍举例:公司给发了150元的购物卡,刚好想去超市购买洗发水(15元).牙刷(5元).香皂(2).只买着三个种类的商品,要求全部花完150元,有多少种买法,每种买法都是各买几样?<br /> <script>var zong =0;var sum=0;for(var x= 0;x<=10;x++){ for(var y =0;y<=30;y++) { for(v