11.24 作业 Problem E: 小学生算术
2016-11-24 18:48
281 查看
Description
给出两个正整数,计算两个数相加需要多少次进位。Input
数据有多组,每组包含两个整数,都在int范围内,输入以EOF结尾Output
一个整数,表示两个数相加需要的进位次数Sample Input
123 321555 555
123456789 987654321
Sample Output
03
9
HINT
一定要用整数求余相加判断吗?想想有没有简洁的思路。试试用字符串吧,转换思路,分步处理。思路:
字符串储存 从最后一位开始算 相加大于10就进位
注:进位后前面一位数要+1 苟
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str1[100],str2[100];
while(scanf("%s",str1)!= EOF)
{
scanf("%s",str2);
int i,j,flag = 0,flag2 = 0;//flag记录次数 flag2记录进位次数 每进位一次+1
int len1 = strlen(str1);//第一个数的长度
int len2 = strlen(str2);//第二个数的长度
int temp = 0;//temp表示相加之和
for(i = len1-1,j = len2 - 1; i>=0||j>=0; i--,j--)
{
temp = 0;//清空每一次的temp
if(i >= 0)
temp += str1[i] - 48;
if(j >= 0)
temp += str2[j] - 48;
if(temp + flag2 >= 10)
{
flag2 = 1;//表示进一位
flag++;
}
else
flag2 = 0;//表示不进位
}
printf("%d\n",flag);//输出进位次数
}
return 0;
}
相关文章推荐
- Problem I: 小学生算术
- 11.24 作业 Problem C: 平均数在哪儿?
- UVa Problem 10035 Primary Arithmetic (小学生算术)
- 11.24 作业 Problem F: 老师的点名方案
- 小学生算术
- 74 小学生算术
- 19.小学生算术
- 小学生算术
- 小学生算术(nyoj74)
- 小学生算术
- 遗传算法解决作业调用问题(classic job shop scheduling problem,JSSP)
- 算法竞赛入门经典:第五章 基础题目选解 5.4 小学生算术
- 小学生算术
- 算法题-小学生算术
- 11.17 作业 Problem A: 兔子的繁殖问题
- NYOJ74小学生算术
- 第四周项目三-随机数函数应用于游戏(小学生算术能力测试系统)
- NYOJ74 - 小学生算术
- 拓展:小学生算术能力测试系统
- 小学生算术