for的嵌套 //99乘法表 for (int a = 1; a <= 9; a++)-----控制行 { for (int i = 1; i <= a; i++)------控制列 { Console.Write(i + "*" + a + "=" + (a * i) + " "); } 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==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(); 羽毛球拍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;//884800000 int 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++; }