百练2981 大整数加法

来源:互联网 发布:ls plc编程指令 编辑:程序博客网 时间:2024/04/29 12:31
 

刚接触算法,感觉很奇特...这货不是数这货不是数.....
其实就是模拟
1,num1为第一个,num2可以为其他的多个数而不止是两个,num1 += num2,然后可以继续输入num2
2,用字符串存数,所以这货不是数..

3,注意进位

4,注意输出时,99+1=00的情况
 

#include <stdio.h>#include <string.h>#include <stdlib.h>int main(){int i,k=0,len1,len2,maxlen,a=0,b=0;int num1[210];int num2[210];char s1[210];char s2[210];scanf("%s", s1);len1 = strlen(s1);maxlen = len1;memset(num1,0,sizeof(num1));for(i=len1-1; i>=0; i--){num1[k++] = s1[i] - '0';}scanf("%s", s2);k = 0;len2 = strlen(s2);memset(num2,0,sizeof(num2));for(i=len2-1; i>=0; i--){num2[k++] = s2[i] - '0';}k = 0;for(i=0; i<len2; i++){num1[i] *= num2[i];    if(num1[i] > 10)    {a = num1[i] / 10;b = num1[i] % 10;num1[i] = b;num1[i+1] = num1[i+1] + a;a = b = 0;}}if(len2 > maxlen){maxlen = len2;}if(num1[maxlen] != 0){maxlen++;}for(i=maxlen-1;i>=0;i--){printf("%d" ,num1[i]);}system("pause");return 0;}


原创粉丝点击