加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数相加

发布时间: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;

}


如果大家有更好的方法请告诉我,谢谢。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读