A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黑骏马 于 2013-7-30 15:32 编辑

1.求1-100间所有偶数之和
  1. //求1-100间所有偶数和
  2. int sum = 0;
  3. for (int i = 0; i <= 100; i+=2)
  4. {
  5.     sum += i;
  6. }
  7. Console.WriteLine(sum);
  8. Console.ReadKey();
复制代码
2.找出100-999间所有水仙花数
  1. //找出100-999间所有水仙花数
  2. Console.WriteLine("100-999间所有水仙花数:");
  3. int ge=0,shi=0,bai=0;
  4. for (int i = 100; i < 1000; i++)
  5. {
  6.     ge = i % 10;
  7.     shi = i / 10 % 10;
  8.     bai = i / 100;
  9.     if (i==ge*ge*ge+shi*shi*shi+bai*bai*bai)
  10.     {
  11.         Console.WriteLine(i);
  12.     }
  13. }
  14. Console.ReadKey();
复制代码
3.输出九九乘法表
  1. Console.WriteLine("九九乘法表:");
  2. for (int i = 1; i < 10; i++)
  3. {
  4.     for (int j = 1; j <= i ; j++) // j<=i 保证每一行输出到相同数字相乘时就停止,输出的表是阶梯形而不是矩形
  5.     {
  6.         //Console.Write(i+"X"+j+"="+i*j+"  ");
  7.         Console.Write("{0}X{1}={2}\t",i,j,i*j);//用Write()避免每个算式后都换行,插入Tab分隔算式
  8.     }
  9.     Console.WriteLine("");//一行Write()完,输出一个换行
  10. }
  11. Console.ReadKey();
复制代码
.
4.
  1. Console.WriteLine("请输入一个数字,程序将其分解为两数之和:");
  2. try
  3. {
  4.   int sum = Convert.ToInt32(Console.ReadLine());
  5.   for (int i  = 0, j = sum ; i <= sum && j >= 0 ; i ++ , j --)
  6.   {
  7.     Console.WriteLine("{0}+{1}={2}",i,j,sum);
  8.   }
  9. }
  10. catch
  11. {
  12.   Console.WriteLine("输入有误,只能输入数字,请重新运行。");
  13. }
复制代码
4.5 老师讲的方法 ,替换上面代码中的for循环部分
  1. for (int i = 0; i <= sum; i++)
  2. {
  3.     Console.WriteLine("{0}+{1}={2}", i, sum - i, sum);
  4. }
复制代码
5.对4的改造,分解一个数为两数乘积。这个题目是视频里没有的,大家来做做看吧,效果如下,最后一个图为最终效果:
   
我的代码先隐藏起来,大家做完把代码发出来对比下。

Console.WriteLine("请输入一个数字,程序将其分解为两数乘积:");
    try
    {
        int sum = Convert.ToInt32(Console.ReadLine());
        int jsum = sum;
        //for (int i = 1; i <= sum ; i++)
        //for (int i = 1; i <= sum / 2.0 ; i++) //i取值不超过sum的一半,不寻找乘数与被乘数互换的算式,提高效率
        //for (int i = 1; i <= sum / 2.0 && i <= jsum; i++)// 下一轮循环时,i取值不大于上一轮找到的j值
        for (int i = 1; i <= sum / 2.0 && i < jsum; i++)
        {
            for (int j = jsum; j >= 1; j--)// 下一轮循环时,j取值不大于上一轮找到的j值
            {
                if (i * j == sum)
                {
                    jsum = j;// 下一轮循环时,j取值不大于上一轮找到的j值
                    Console.WriteLine("{0}X{1}={2}", i, j, sum);
                    break;//一旦找到一个算式,即跳出内层for循环,i++,寻找下一个算式,减少无效计算,提高效率。
                }
            }
        }
    }
    catch
    {
        Console.WriteLine("输入有误,只能输入数字,请重新运行。");
    }

    Console.ReadKey();
...


6 个回复

倒序浏览
论坛里的编辑器没有代码高亮的功能,看代码不舒服啊。建议管理员给代码加上样式,像CSDN博客里一样。



回复 使用道具 举报
{:soso_e134:}重新编辑后格式都乱了,怎么都调不回来。
回复 使用道具 举报
正在做呢,好复杂啊
回复 使用道具 举报

  1. //2、找出100-999间所有水仙花数(水仙花是一个三位数,每一位数的立方相加等于该数本身)

  2. static void Main(string[] args)
  3. {
  4.      int a = 0, b = 0, c = 0;
  5.      for (int i = 100; i < 1000; i++)//遍历所有三位数
  6.     {
  7.           a = i / 100;//获取三位数中的第一位数
  8.          Math.DivRem(i, 100, out b);//获取三位数中的后两位数
  9.          b = b / 10;//获取三位数中的第二位数
  10.          Math.DivRem(i, 10, out c);
  11.          a = a * a * a;
  12.          b = b * b * b;
  13.          c = c * c * c;
  14.         if ((a + b + c) == i)//判断是否符合水仙花数
  15.         {
  16.                //Console.WriteLine(i.ToString ());//涉及到装箱 拆箱操作
  17.                  Console.WriteLine(i);
  18.         }

  19.     }
  20.    Console.ReadKey();
  21. }
复制代码
回复 使用道具 举报
这是我的基础测试题九九乘法表代码
  1.   Console.WriteLine("九九乘法表");
  2.             for (int i=1; i < 10; i++)   //for 循环嵌套
  3.             {
  4.                 for (int j=1; j <= i; j++)
  5.                 {
  6.                     Console.Write("{0,1}*{1,1}={2,-5}",j,i,i*j);  //打印乘法表  位置的调整
  7.                 }
  8.                 Console.WriteLine("\n");   //换行
  9.             }
  10.             Console.Read();
复制代码
回复 使用道具 举报
什么时候发几个whil 循环的练习题呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马