用C语言怎么加超大整数???

lqc321 2014-11-06 12:25:52
#include <stdio.h>
int main()
{
int a[80],b[80],c[90];
int n=0,h,i=0,j=0,k;
while(a[i]<10)
{
scanf("%d",&a[i]);
i++;
}
while(b[j]<10)
{
scanf("%d",&b[j]);
j++;
}
for(h=0,i=i-1,j=j-i;j>=0,i>=0;i--,j--,h++)
{
if(a[i]+b[j]+n<10)
c[h]=a[i]+b[j]+n;
else
{
c[h]=(a[i]+b[j])%10;
n=(a[i]+b[j])/10;
}
}
if(j>0)
{
for(k=0;k<j-1;k++)
printf("%d",b[k]);
printf("%d",b[j-1]+n);
for(k=h-1;k>=0;k--)
printf("%d",c[k]);
}
else
{
for(k=0;k<i-1;k++)
printf("%d",a[k]);
printf("%d",a[i-1]+n);
for(k=h-1;k>=0;k--)
printf("%d",c[k]);
}
return 0;
}
...全文
215 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2014-11-06
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>
#define MAXLEN 1000
char a1[MAXLEN];
char a2[MAXLEN];
static int v1[MAXLEN];
static int v2[MAXLEN];
static int v3[MAXLEN];
int i,j,n,L,z;
void main(void) {
    scanf("%d",&n);
    for (j=0;j<n;j++) {
        scanf("%s%s",a1,a2);

        L=strlen(a1);
        for (i=0;i<L;i++) v1[i]=a1[L-1-i]-'0';

        L=strlen(a2);
        for (i=0;i<L;i++) v2[i]=a2[L-1-i]-'0';

        for (i=0;i<MAXLEN;i++) v3[i]=v1[i]+v2[i];

        for (i=0;i<MAXLEN;i++) {
            if (v3[i]>=10) {
                v3[i+1]+=v3[i]/10;
                v3[i]=v3[i]%10;
            }
        }

        printf("Case %d:\n", j+1);
        printf("%s + %s = ", a1, a2);

        z=0;
        for (i=MAXLEN-1;i>=0;i--) {
            if (z==0) {
                if (v3[i]!=0) {
                    printf("%d",v3[i]);
                    z=1;
                }
            } else {
                printf("%d",v3[i]);
            }
        }
        if (z==0) printf("0");

        printf("\n");
    }
}
//Sample Input
//3
//0 0
//1 2
//112233445566778899 998877665544332211
//
//Sample Output
//Case 1:
//0 + 0 = 0
//Case 2:
//1 + 2 = 3
//Case 3:
//112233445566778899 + 998877665544332211 = 1111111111111111110

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧