A+1 Problem(字符串计算进位)

来源:互联网 发布:abi7500数据分析 编辑:程序博客网 时间:2024/06/07 05:20

A+1 Problem

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
求A+1的值!!!
输入
包含多组测试数据。
每组数据包含一个正整数A(A的位数小于1000)。
输出
每组输出数据占一行,输出A+1的值。
样例输入
21912345678
样例输出
32012345679
#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;}
0 0
原创粉丝点击