大数相加
发布时间:2020-12-14 04:12:47 所属栏目:大数据 来源:网络整理
导读:输入: ??? 第1行.:测试数据的组数 ??? 第2行:两个整数 #include stdio.h #include string.h int reserve(char *num,int len)? //颠倒数组中的元素 { ??? int i = 0,low = 0,high = len-1; ??? char c; ??? while(low high) ??? { ??????? c = num[low]; ?
输入: ??? 第1行.:测试数据的组数 ??? 第2行:两个整数 #include <stdio.h> #include <string.h>int reserve(char *num,int len)? //颠倒数组中的元素 { ??? int i = 0,low = 0,high = len-1; ??? char c; ??? while(low < high) ??? { ??????? c = num[low]; ??????? num[low] = num[high]; ??????? num[high] = c; ??????? low ++; ??????? high --; ??? } ??? return 0; } int main() { ??? int n,len_1,len_2,i = 0,j = 0; ??? char num_1[1000],num_2[1000],result[1000]; ??? scanf("%d",&n); ??? for(j = 1; j <= n; j++) ??? { ??????? for(i = 0; i < 1000; i ++) ??????? { ??????????? result[i] = '0'; ??????? } ??????? scanf("%s%s",num_1,num_2); ??????? len_1 = strlen(num_1); ??????? len_2 = strlen(num_2); ??????? printf("Case %d:n",j); ??????? printf("%s + %s = ",num_2); ??????? reserve(num_1,len_1); ??????? reserve(num_2,len_2); ??????? if(len_1 < len_2)?? //数组num_1比数组num_2短 ??????? { ??????????? for(i = len_1; i < len_2; i++)??? //使两个数组等长,短的数组后面添0 ??????????????? num_1[i] = '0'; ??????????? for(i = 0; i < len_2; i ++) ??????????? { ??????????????? result[i] += (num_1[i] + num_2[i] - 96); ??????????????? if(result[i] > 57) ??????????????? { ??????????????????? result[i] = ((result[i] - 48) % 10) + 48; ??????????????????? result[i+1] ++; ??????????????? } ??????????? } ??????????? if(result[len_2] != '0')???? //如果数组的最高位发生进位 ??????????????? printf("%c",result[len_2]); ???????????? for(i = len_2 - 1; i >= 0; i --) ??????????????? printf("%c",result[i]); ??????? } ??????? else ??????? { ??????????? for(i = len_2; i < len_1; i++) ??????????????? num_2[i] = '0'; ??????????? for(i = 0; i < len_1; i ++) ??????????? { ??????????????? result[i] += (num_1[i] + num_2[i] - 96); ??????????????? if(result[i] > 57) ??????????????? { ??????????????????? result[i] = ((result[i] - 48) % 10) + 48; ??????????????????? result[i+1] ++; ??????????????? } ??????????? } ??????????? if(result[len_1] != '0') ? ??????????????? printf("%c",result[len_1]); ???????????? for(i = len_1 - 1; i >= 0; i --) ??????????????? printf("%c",result[i]); ??????? } ??????? printf("n"); ??????? if(j != n) ??????????? printf("n"); ??? } ??? return 0; } 如果大家有更好的方法请告诉我,谢谢。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |