当数字足够大的时间,用数组实现大数的运算。
参考代码如下:
#include <stdio.h> #include <string.h> int main() { int a[100],b[100],c[200]; char str1[100],str2[100]; int i,j,k,index,incre=0; printf("input the first string:"); scanf("%s",str1); index=0; for(i=strlen(str1)-1;i>=0;i--) { a[index]=str1[i]-'0'; index++; } printf("input the second string:"); scanf("%s",str2); index=0; for(i=strlen(str2)-1;i>=0;i--) { b[index]=str2[i]-'0'; index++; } index=0; while(index<strlen(str1) && index<strlen(str2)) { c[index]=(a[index]+b[index]+incre)%10; incre=(a[index]+b[index]+incre)/10; index++; } if(index==strlen(str1) && index<strlen(str2)) { for(j=index;j<strlen(str2);j++){ c[index]=(b[j]+incre)%10; incre=(b[j]+incre)/10; index++; } } if(index==strlen(str2) && index<strlen(str1)) { for(j=index;j<strlen(str1);j++){ c[index]=(a[j]+incre)%10; incre=(a[j]+incre)/10; index++; } } if(incre) { c[index]=incre; index++; } for(i=index-1;i>=0;i--) printf("%d",c[i]); putchar('\n'); return 0; }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。