前天期中考试烦死了,被10的9次方吓住了,以为一定要用字符串写 ,其实int类型是足够的
然后就是记住没有10的几十几百次方,int或long long int 都是足够的,
然后看题目:
老师发现很多学生在进行加法的时候,发现“进位”特别容易出错。于是交给小南一个任务,就是统计两个整数x和y在相加时需要多少次进位,其中x和y满足0≤x,y≤ 109,你能帮他完成任务吗?
输入
多个样例。 每个样例输入1行,包括2个整数x和y(0≤x,y≤ 109)。
输出
每个样例输出一个整数,代表所需要的进位数。每个样例输出结果占一行。
样例输入 Copy
<span style="background-color:#ffffff"><span style="color:#333333"><span style="color:#333333"><span style="background-color:#f5f5f5">8 7
9 0
154 246
555 5555
123 594</span></span></span></span>
样例输出 Copy
1 0 2 3 1
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Tongjijinwei(int m, int n)
{
int count=0;
int carry=0;//carry的作用非常大
while (m > 0 || n > 0)//只有当m > 0 || n > 0时才能保证历遍所有,而且如果多出来的也没有进位
{
int dight1 = m % 10;
int dight2 = n % 10;
if (dight1 + dight2 + carry >= 10)
{
count++;
carry = 1;
}
else
{
carry = 0;
}
m /= 10;
n /= 10;
}
return count;
}
int main()
{
int x, y;
while (scanf("%d%d", &x, &y) != EOF)
{
int c = Tongjijinwei(x, y);
printf("%d\n", c);
}
return 0;
}