zoukankan      html  css  js  c++  java
  • for循环的嵌套,for循环的穷举迭代

    for循环的嵌套
                输入一个正整数,求阶乘的和 

    嵌套
                Console.Write("请输入一个正整数:");
                int a = int.Parse(Console.ReadLine());
                int sum = 0;
                for (int i = 1; i <= a; i++)
                {
                  int jie = 1;
                  for (int j = 1; j <= i; j++)
                   {
                jie *= j;
                    }
                   sum += jie;
                }
                Console.WriteLine("结果是:" + sum);
                Console.ReadLine();
                      99口诀表
                for (int i = 1; i <= 9; i++)
                {
                    for (int j = 1; j <= i; j++)
                    {
                        Console.Write("{0}*{1}={2} ",j,i,(j*i));
                   }
                    Console.Write(" ");
                }

               Console.ReadLine();

                直角在右下角的三角形
                for (int i = 1; i <= 5; i++)
                {
                   for (int j = 1; j <= 5 - i; j++)
                    {
                        Console.Write("  ");
                   }
                    for (int j = 1; j <= i; j++)
                    {
                        Console.Write("□");
                   }
                   Console.WriteLine();
                }

                Console.ReadLine();

          

    循环可以解决的问题类型
                穷举,把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

                单位给发了一张150元购物卡,
                拿着到超市买三类洗化用品。
                洗发水15元,香皂2元,牙刷5元。
               求刚好花完150元,有多少种买法,
                每种买法都是各买几样?
                洗发水 x  10
                牙刷    y  30
                香皂    z  75
                int ci = 0;
                int biao = 0;
                for (int x = 0; x <= 10; x++)
                {
                    for (int y = 0; y <= 30; y++)
                    {
                        for (int z = 0; z <= 75; z++)
                        {
                            ci++;
                            if (15 * x + y * 5 + z * 2 == 150)
                            {
                                biao++;
                                Console.WriteLine("第{0}种买法:洗发水{1}瓶,牙刷{2}支,香皂{3}块。", biao, x, y, z);
                            }
                        }
                    }
                }
                Console.WriteLine("总共有{0}种买法。", biao);
                Console.WriteLine(ci);
                Console.ReadLine();

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

    纸张可以无限次对折,纸张厚度为0.07毫米。
                问多少次对折至少可以超过8848?
                double height = 0.07;//8848m=8848000
                int ci = 0;
                while(height<=8848000)
                {
                  ci++;
                  height *= 2;//height=height*2;
                }
                Console.WriteLine(ci);
                Console.ReadLine();

  • 相关阅读:
    [DB] 数据库的连接
    JS leetcode 翻转字符串里的单词 题解分析
    JS leetcode 拥有最多糖果的孩子 题解分析,六一快乐。
    JS leetcode 搜索插入位置 题解分析
    JS leetcode 杨辉三角Ⅱ 题解分析
    JS leetcode 寻找数组的中心索引 题解分析
    JS leetcode 移除元素 题解分析
    JS leetcode 最大连续1的个数 题解分析
    JS leetcode 两数之和 II
    JS leetcode 反转字符串 题解分析
  • 原文地址:https://www.cnblogs.com/fuze/p/5700910.html
Copyright © 2011-2022 走看看