C#编程—第五天--循环语句for

for穷举法、迭代法

穷举法练习:

            //穷举法:
            //1、找100以内的与7有关的数
            //2、小明单位发了一百元的购物卡,他到超市买洗化用品,一是洗发水(15元),二是香皂(2元),三是牙刷(5元)怎么可以正好把一百元花完。
            //3、公鸡两文钱一只,母鸡一文钱一只,小鸡半文钱一只,花100文钱买100只鸡,该如何购买?
            //4、大马驮2石粮食,中马驮1石粮食,两头小马驮一旦粮食,要用100匹马,驮100石粮食,该如何调配
            //5、有一分钱、两分钱、五分钱硬币,要组合出两角有哪些组合方法。
            //6、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
            //A和B两人中至少去一人;                                a+b>=1
            //A和D不能一起去;                                      a+d<=1
            //A、E和F三人中要派两人去;                             a+e+f==2
            //B和C都去或都不去;                  注释:            b+c!=1
            //C和D两人中去一个;                                    c+d==1
            //若D不去,则E也不去。                                  d+e==0||d==1
            //问应当让哪几个人去?
            //7、123()45()67()8()9=100;要求在()里面填写+或-使等式成立。

            //2、小明单位发了一百元的购物卡,他到超市买洗化用品,一是洗发水(15元),二是香皂(2元),三是牙刷(5元)怎么可以正好把一百元花完。

            for (int i = 1; i <= 6; i++)//i:单独买洗发水最多可以买6
            {
                for (int j = 1; j <= 50; j++)//j:香皂单独买最多50
                {
                    for (int n = 1; n <= 20; n++)//n:牙刷单独买最多20
                    {
                        if (15 * i + 2 * j + 5 * n == 100)//判断什么情况可以把一百元花光
                        {
                            Console.WriteLine("{0}瓶洗发水和{1}块香皂和{2}个牙刷一共一百元", j, j, n);
                        }
                    }
                }
            }

            //3、公鸡两文钱一只,母鸡一文钱一只,小鸡半文钱一只,花100文钱买100只鸡,该如何购买?

            for (int i = 0; i < 50; i++)//i:公鸡两文钱一只
            {
                for (int j = 0; j < 100; j++)
                {
                    for (int n = 0; n < 200; n++)
                    {

                        if (2 * i + j + 0.5 * n == 100 && i + j + n == 100)
                        {
                            Console.WriteLine("满足条件需要公鸡{0}只,母鸡{1},小鸡{2}。", i, j, n);
                        }

                    }
                }
            }

            //4、大马驮2石粮食,中马驮1石粮食,两头小马驮一旦粮食,要用100匹马,驮100石粮食,该如何调配

            for (int i = 1; i <= 50; i++)
            {
                for (int j = 1; j <= 100; j++)
                {
                    for (int n = 1; n <= 200; n++)
                    {
                        if (2 * i + j + 0.5 * n == 100 && i + j + n == 100)
                        {
                            Console.WriteLine("满足条件需要大马{0}只,中马{1},小马{2}。", i, j, n);
                        }
                    }
                }
            }

            //某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:
            //A和B两人中至少去一人;                                a+b>=1
            //A和D不能一起去;                                      a+d<=1
            //A、E和F三人中要派两人去;                             a+e+f==2
            //B和C都去或都不去;                  注释:            b+c!=1
            //C和D两人中去一个;                                    c+d==1
            //若D不去,则E也不去。                                  d+e==0||d==1
            //问应当让哪几个人去?

            for (int a = 0; a <= 1; a++)
            {
                for (int b = 0; b <= 1; b++)
                {
                    for (int c = 0; c <= 1; c++)
                    {
                        for (int d = 0; d <= 1; d++)
                        {
                            for (int e = 0; e <= 1; e++)
                            {
                                for (int f = 0; f <= 1; f++)
                                {
                                    if (a + b >= 1 && a + d <= 1 && a + e + f == 2 && b + c != 1 && c + d <= 1 && (d + e == 0 || d == 1))
                                    {
                                        Console.WriteLine("A:{0}\nB:{1}\nC:{2}\nD:{3}\nE:{4}\nF:{5}", a, b, c, d, e, f);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            //7、123()45()67()8()9=100;要求在()里面填写+或-使等式成立。

            //string a, b;
            //a = "+";
            //b = "-";

            for (int i = -1; i <= 1; i += 2)// 初始值-1 判断条件限定i只能是-1 或者+1       i+=2  ==>   i=i+2
            {
                for (int j = -1; j <= 1; j += 2)
                {
                    for (int n = -1; n <= 1; n += 2)
                    {
                        for (int m = -1; m <= 1; m += 2)
                        {
                            if (123 + i * 45 + j * 67 + n * 8 + m * 9 == 100)
                            {
                                //if (i==1||i == -1||j==1||j == -1||n==1||n == -1||n==1||m == -1)
                                //{

                                //}
                                Console.WriteLine("123+({0}*45)+({1}*67)+({2}*8)+({3}*9)=100", i, j, n, m);
                            }
                        }
                    }
                }
            }

迭代法练习:

//求阶乘(6的阶乘)
            int jc = 1;
            for (int i = 6; i >= 1; i--)
            {
                jc = i * jc;

            }
            Console.WriteLine("6的阶乘是:" + jc);

            //求年龄。(有6个小孩子排在一起,问第一个多大年龄,她说:比第二个小2岁,问第二个多大年龄,她说:比第三个小2岁,以此类推,问第六个多大年龄,她说:自己16岁,问第一个小孩子几岁?)

            int age = 16;
            for (int i = 5; i >= 1; i--)//i为第二个小孩岁数
            {
                age -= 2;
            }
            Console.WriteLine("第一个小孩的年龄是:" + age + "岁");

            //一张纸的厚度是:0.15mm,假设这张纸足够大可以无限次对折,问:折26次的高度是多少?
            double a = 0.00015;
            for (int i = 1; i <= 26; i++)
            {
                a *= 2;
            }
            Console.WriteLine("当纸折叠26次时,厚度为:" + a + "米");

            //棋盘放粮食(请在第一个格子放1粒粮食,第二个格子放2粒,第三个格子放四粒,以此类推,
            //每个格子放的粮食都是前一个格子里粮食的2倍,直到放到第64个格子,请问第64个格子需要多少粮食?
            //假如1粒粮食重量0.02克,那么棋盘64个格子的粮食一共重多少千克?

            decimal sum = 0, num = 1;

            for (int i = 1; i <= 64; i++)
            {
                num = num * 2;
                sum = num + i;
            }

            Console.WriteLine("第64个格子需要粮食:{0}", sum);
            decimal w = (decimal)0.00002;
            decimal sw = w * sum;
            Console.WriteLine("棋盘所有64个格子 上面粮食总重:{0}", sw);

            //公园里有一只猴子和一堆桃子,猴子每天吃掉桃子数量的一半,
            //把剩下的一半数量中扔掉一个坏的,到了第七天,
            //猴子睁开眼发现只剩下一个桃子了,问公园原来有多少桃子?

            int count=1;
            for (int i = 6; i >= 1; i--)
            {
                count = (count + 1) * 2;
            }

            Console.WriteLine("原来桃子数:{0}",count);
时间: 2024-10-15 22:47:37

C#编程—第五天--循环语句for的相关文章

Java编程基础-选择和循环语句

一.选择结构语句 选择结构:也被称为分支结构.选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码. Java语言提供了两种选择结构语句:if语句和switch语句 1.if语句 if语句有三种语法格式. (1).if语句第一种语法格式(适合一种判断) if(条件表达式){ 语句体; } 执行流程:判断条件表达式的结果,当为为true时,{}中的执行语句体才会执行,否则不执行语句体. 注意: 条件表达式的结果必须是布尔类型:

编程基础及分支循环语句

编程基础 程序: 一组能让计算机识别和执行的指令 电子计算机 能够执行程序的机器 现代计算机: 艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家.逻辑学家,被称为计算机科学之父,人工智能之父.图灵提出的著名的图灵机模型为现代计算机的逻辑工作方式奠定了基础 冯·诺依曼著名匈牙利裔美籍犹太人数学家.计算机科学家.物理学家和化学家,数字计算机之父.他提出了以二进制作为数字计算机的数制基础,计算机应该按照程序顺序执行,计算机应该有五大部

菜鸟笔记五、循环语句

do 循环 先进行一次循环,然后进行条件判断,条件判断为true继续循环,条件为false挑出循环. 例:输出 1~10 int i=1; do { Console.WriteLine("{0}",i++); }while(i<=10); while循环 while循环与do循环类似,但有一个明显的区别.while循环要在开始时判断循环条件.如果结果为false则直接跳过循环. int i=1; while(i<=10) { Console.WriteLin("{

Swift学习笔记五:循环和条件语句

一.循环语句 1. for循环 1) for -in 循环,对于数据范围,序列,集合等中的每一个元素,都执行一次 for a in 0...5{}    //循环迭代,从a=0到a=5,执行{}里的代码 注意:a只循环中存在,也就是出了{}a就不存在了 或者遍历数组 let a = [1,2,3] for b in a{} //循环迭代,从b=1到b=3 如果你不需要序列中的每一个值,可以使用_来忽略它,仅仅只是使用循环体本身: for _ in 0...5{}    //循环执行{}里的代码,

shell脚本编程之循环语句

在运行脚本时重复执行一系列的命令是很常见的,这时我们就需要使用循环语句来达到这个目的. 一.for命令 格式:for 变量 in 列表:do 循环体 done for命令会遍历列表中的每一个值,并且在遍历完成后退出循环. 列表形式有以下几种: 1.在命令中定义的一系列的值: 2.变量: 3.命令: 4.目录: 5.文件. 实例1: 上例中使用{初始值..结束值}格式来表示一个区间的数值. 实例2:以变量作为列表: 实例3:用命令生成列表: 上例中使用seq命令来生成列表,seq命令的格式为:se

《编程导论(Java)&amp;#183;3.2.4 循环语句》

本文全然复制<编程导论(Java)·3.2.4 循环语句>的内容.除[]中的说明文字.请阅读和比較其它编程教材. 我知道.假设我是一个刚開始学习的人,<编程导论(Java)>非常不适合自学.建议同学们阅读时,一定选择一本其它的书同一时候看,或上网. ,由于太一般或简单的内容.或我不想留在书中占用篇幅的东西,都省略了. 毕竟,网络上相关的一般描写叙述的内容.大把大把. 卓别林在<摩登时代>中.说明流水线上的工人在高强度下重复运行同一个动作是多么令人郁闷.然而循环/迭代(l

SQL基本编程,分支语句,循环语句,存储过程,触发器

基本编程: 定义变量 declare @变量名 数据类型 赋值 set @变量名 = 值 select @变量名 = 值 取值打印 select @变量名 print @变量名 映射到结果集 打印到消息框 分支语句if @a>@bbegin 语句....endelsebeginend 循环语句注意循环四要素:初始条件,循环条件,循环体,状态改变 declare @a int;select @a = 1; while 循环条件 @a<=10begin 循环体end 存储过程: 存储过程是集中存储

《编程导论(Java)&#183;3.2.4 循环语句》

本文完全复制<编程导论(Java)·3.2.4 循环语句>的内容,除[]中的说明文字.请阅读和比较其他编程教材. 我知道,如果我是一个初学者,<编程导论(Java)>很不适合自学.建议同学们阅读时,一定选择一本其他的书同时看,或上网.,因为太一般或简单的内容.或我不想留在书中占用篇幅的东西,都省略了.毕竟,网络上相关的一般描述的内容,大把大把. 卓别林在<摩登时代>中,说明流水线上的工人在高强度下反复执行同一个动作是多么令人郁闷.然而循环/迭代(loop/iterati

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc