正文

stu(1030)2005-08-30 20:15:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/elva6401/4270.html

分享到:

这是汕头大学的第1030道题,答案: #include<stdio.h> #include<string.h> int change(char C[],int k) {     int i;     for(i=0;i<k;i++)         {             if(C[i]/10)             {                 C[i]=C[i]%10;                 C[i+1]++;             }         }     if(C[i])         k++;     return k; } int main() {     char A[52],B[52],C[52];     int len1,len2,i,j,k;     while(scanf("%s",A)!=EOF)         {             getchar();             scanf("%s",B);             for(k=0;k<52;k++)                 C[k]=0;             len1=strlen(A);             len2=strlen(B);             i=len1-1;             j=len2-1;             k=0;             while(i>=0&&j>=0)                 {                     C[k++]=A[i--]+B[j--]-2*48;                 }             while(i>=0)                 {                     C[k++]=A[i--]-48;                 }             while(j>=0)                 {                     C[k++]=B[j--]-48;                 }             k=change(C,k)-1;             for(i=k;i>=0;i--)                 printf("%d",C[i]);             printf("\n");         }     return 0; } 讲解:1由于所要加的两个数太大了,超出了长整树所能加的范围,所以想到用两个数组来存放数,应此        先把数当做字符串来读进来先。       2两数相加,应此用到了第3个数组,应此在进行加之前要把数组清空先。       3读入的字符串应为不一定长度相同,但是我门加的时候必须对其来加,应此我门要先把字符串中        元素从后面加起。       4式中-48的意思是把相应的字符串转化成相应的整数。       5考虑到相加时会产生进位这些,应此用了channg函数来判断是否有进位,有的话,那就进一位       6然后在用k来把数按原来的顺序排好。

阅读(2344) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册