for的嵌套
//99乘法表for (int a = 1; a <= 9; a++)-----控制行{for (int i = 1; i <= a; i++)------控制列{Console.Write(i + "*" + a + "=" + (a * i) + "\t");}Console.WriteLine();}Console.ReadLine();
结果
打印星号
//直角在左上for (int i = 5; i >= 1; i--){for (int j = 1; j <= i; j++)//j<i,刚开始j<5,打出来是个正方形的,和上面的i没有关联上。 {Console.Write("※");}Console.WriteLine();}Console.ReadLine();
//打印星号,直角在左下for (int i = 1; i <= 5; i++){for (int j = 1; j <= i; j++){Console.Write("※");}Console.WriteLine();}Console.ReadLine();
直角在右边之后就有点难了。我就晕了。
//直角在右上for (int i = 1; i <= 5; i++){for (int j = 2; j <= i; j++)------条件时常会搞错{Console.Write(" ");-------两个空格是一个字符,空出位置来}for (int t = 5; t >= i; t--){Console.Write("※");}Console.WriteLine();-------换行,打下一行}Console.ReadLine();
//直角在右下for (int i = 1; i <= 5; i++){for (int j = 4; j >= i; j--){Console.Write(" ");}for (int t = 1; t <= i; t++){Console.Write("※");}Console.WriteLine();}Console.ReadLine();
穷举:
//穷举://把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。//单位给发了一张150元购物卡,//拿着到超市买三类洗化用品。//洗发水15元,香皂2元,牙刷5元。//求刚好花完150元,有多少种买法,//每种买法都是各买几样?//设洗发水x 150/15==10//牙刷y 150/5==30//香皂z 150/2==75int 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();
羽毛球拍15元每支,球3元每个,水2元每瓶,200元每种至少一个,有多少种可能。
只买球拍最多13支,设为x。
球最多66个,设数量为y。
水最多100瓶,设为z。
15x+3y+2z=200.
int m = 0;for (int x = 1; 15 * x<=200; x++){for (int y = 1; 3 * y <= 200; y++){for (int z = 1; 2 * z <= 200; z++){if(15*x+3*y+2*z==200){m++;Console.WriteLine(x+"支拍子"+y+"个球"+z+"瓶水。");}}} }Console.WriteLine("一共"+m+"种买法。");Console.ReadLine();
百鸡百钱:公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡,有多少种可能性。
设公鸡x只,母鸡y,小鸡z
2x+y+0.5z=100&&x+y+z=100-----这是条件
int m = 0;for (int x=1;x<=50 ;x++ ){for (int y = 1; y <= 100; y++){for (int z = 1; z <= 200; z++){if(2*x+y+0.5*z==100&&x+y+z==100){m++;}}}}Console.WriteLine("一共" + m + "种买法。");Console.ReadLine();
//迭代://从初始情况按照规律不断求解中间情况,最终推导出结果。//纸张可以无限次对折,纸张厚度为0.07毫米。//问多少次对折至少可以超过8848?int a = 7;//884800000int i = 1;for (;; ){a *= 2;//a=a*2;if (a >= 884800000){Console.WriteLine(i);Console.WriteLine(a);break;}i++;}while(true){a *= 2;if (a >= 884800000){Console.WriteLine(i);Console.WriteLine(a);break;}i++;}