函数题:大整数相加
本题要求实现一个函数,实现大整数相加运算。大整数按每4位保存在整数数组中,如果大整数位数不是4的倍数,则将保证低位都按4位一存。如“123456789”保存为1,2345,6789。
### 函数接口定义:
c++
int convert(char a[],int x[]);
int add(int x[],int len1,int y[],int len2,int z[]);
a 是以字符串形式输入的整数; x 是按4位一组保存的整数。convert函数实现将字符串转换为整数保存,数组中以顺序存储。如“123456789”存储数组中元素为1,2345,6789。
add函数实现将x和y做相加运算,结果存储在数组c中,按逆序存放,如如“123456789”存储数组中元素为6789,2345,1。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <string.h>
#define N 100
int convert(char a[],int x[]);
int add(int x[],int len1,int y[],int len2,int z[]);
int main()
{
char a[N],b[N];
int m[N/4+1],n[N/4+1],s[N/4+1],len1,len2,len3,i;
scanf("%s%s",a,b);
len1=convert(a,m);
len2=convert(b,n);
len3=add(m,len1,n,len2,s);
printf("%d,",s[len3-1]);
for(i=len3-2;i>0;i--)
printf("%04d,",s[i]);
printf("%04d",s[0]);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
12345
12345
### 输出样例:
out
2,4690
答案:若无答案欢迎评论
### 函数接口定义:
c++
int convert(char a[],int x[]);
int add(int x[],int len1,int y[],int len2,int z[]);
a 是以字符串形式输入的整数; x 是按4位一组保存的整数。convert函数实现将字符串转换为整数保存,数组中以顺序存储。如“123456789”存储数组中元素为1,2345,6789。
add函数实现将x和y做相加运算,结果存储在数组c中,按逆序存放,如如“123456789”存储数组中元素为6789,2345,1。
### 裁判测试程序样例:
c++
#include <stdio.h>
#include <string.h>
#define N 100
int convert(char a[],int x[]);
int add(int x[],int len1,int y[],int len2,int z[]);
int main()
{
char a[N],b[N];
int m[N/4+1],n[N/4+1],s[N/4+1],len1,len2,len3,i;
scanf("%s%s",a,b);
len1=convert(a,m);
len2=convert(b,n);
len3=add(m,len1,n,len2,s);
printf("%d,",s[len3-1]);
for(i=len3-2;i>0;i--)
printf("%04d,",s[i]);
printf("%04d",s[0]);
return 0;
}
/* 请在这里填写答案 */
### 输入样例:
in
12345
12345
### 输出样例:
out
2,4690
答案:若无答案欢迎评论