A+1 Problem
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
1
-
描述
-
求A+1的值!!!
-
输入
-
包含多组测试数据。
每组数据包含一个正整数A(A的位数小于1000)。
输出
- 每组输出数据占一行,输出A+1的值。 样例输入
-
2 19 12345678
样例输出
-
3 20 12345679
-
#include<stdio.h> #include<string.h> int main() { int i,l,j,k; char a[1009],b[1009]; //a为小于1000位正整数,不能用int型,所以用字符串数组 while(gets(a)) { l=strlen(a); j=1; k=l; for(i=l-1;i>=0;i--) { //b默认比a多一位 b[k--]=(a[i]-'0'+j)%10+'0'; //a的最后一位+1取余数,赋值给b的末位数,
-
<span style="white-space:pre"> </span> //通过+'0',-'0',实现字符串与数字之间的转换 j=(a[i]-'0'+j)/10; //考虑进位问题。满10进1. } //此时b除了第一位外,已全部赋值 b[0]=j+'0'; //进位的话,b首位为1,不进位为0 for(i=0;i<=l;i++) { if(b[i]=='0'&&i==0) continue; //若b首位为0,把0去掉 printf("%c",b[i]); //输出b } printf("\n"); //换行,进行下一组数据 } return 0; }
-
包含多组测试数据。