黑马程序员技术交流社区
标题:
算数
[打印本页]
作者:
monkey
时间:
2014-2-14 10:16
标题:
算数
本帖最后由 monkey 于 2014-2-14 14:51 编辑
描述
很多小学生在学习加法时,发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。
输入
输入两个正整数m,n.(m,n,都是三位数)
输出
输出m,n,相加时需要进位多少次。
样例输入
123 456
555 555
123 594
0 0
样例输出
0
3
1
作者:
wushanwow
时间:
2014-2-14 12:39
本帖最后由 wushanwow 于 2014-2-14 18:55 编辑
不明觉厉~~不明觉厉~~不明觉厉~~
作者:
monkey
时间:
2014-2-14 14:23
wushanwow 发表于 2014-2-14 12:39
还有更简便的数学方法,多多思考
作者:
j6495345
时间:
2014-2-14 15:16
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();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2