- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace 控制台应用5
- {
- class Program // 很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。
- // 你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
- {
- static void Main(string[] args)
- {
- bool kongzhi=true; //控制什么时候退出循环
- while (kongzhi) //循环执行
- {
- Console.WriteLine("请输入第一个三位数");
- string shu1 = Console.ReadLine();
- Console.WriteLine("请输入第二个三位数");
- string shu2 = Console.ReadLine();
- if (Convert.ToInt32(shu1) == 0 && Convert.ToInt32(shu2) == 0) //判断输入的是否都是0
- {
- kongzhi = false; //关闭循环
- }
- else //如果不是0
- {
- int s1b, s1s, s1g, s2b, s2s, s2g, js = 0, gjs = 0, sjb = 0; //把输入的每一位数字都拿出来
- s1b = Convert.ToInt32(shu1.Substring(0, 1));
- s1s = Convert.ToInt32(shu1.Substring(1, 1));
- s1g = Convert.ToInt32(shu1.Substring(2, 1));
- s2b = Convert.ToInt32(shu2.Substring(0, 1));
- s2s = Convert.ToInt32(shu2.Substring(1, 1));
- s2g = Convert.ToInt32(shu2.Substring(2, 1));
- if (s1g + s2g >= 10) //比较个位数
- {
- js++; //进位次数加一
- gjs = 1; //等一会给十位+1
- Console.WriteLine("个位进一");
- }
- if (s1s + s2s + gjs >= 10) //比较十位
- {
- js++;
- sjb = 1;
- Console.WriteLine("十位进一");
- }
- if (s1b + s2b + sjb >= 10) //比较百位
- {
- js++;
- Console.WriteLine("百位进一");
- }
- Console.WriteLine("一共"+js+"次进位"); //输出
- Console.WriteLine("------------------------------------------------------");
- }
- }
- Console.WriteLine("按任意键退出");
- Console.ReadKey();
- }
- }
- }
复制代码 |