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

HDOJ1002 A + B Problem II(大数)

发布时间:2020-12-14 02:18:53 所属栏目:大数据 来源:网络整理
导读:题目链接:点击打开链接 简单的A + B,但是题目中给的数据不超过1000位,爆long long。 java大数写法: import java.util.*;import java.io.*;import java.math.BigInteger;public class Main {public static void main(String[] args) {Scanner cin = new S

题目链接:点击打开链接


简单的A + B,但是题目中给的数据不超过1000位,爆long long。


java大数写法:

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		for(int i = 1; i <= n; ++i) {
			BigInteger a = cin.nextBigInteger();
			BigInteger b = cin.nextBigInteger();
			BigInteger ans = a.add(b);
			System.out.println("Case " + i + ":");
			System.out.println(a + " + " + b + " = " + ans);
			if(i != n) System.out.println();
		}
	}
}


C++ 字符串模拟写法:

#include <stdio.h>
#include <string.h>
char a[1002]={0},b[1002]={0},sum[1002]={0},a1[1002]={0},b1[1002]={0};
int main()
{
 int i,j,t,lena,lenb,k;
 while(scanf("%d",&t)!=EOF)
 {
     for(i=0;i<t;i++)
     {
        scanf("%s%s",a,b);
         lena=strlen(a);
         lenb=strlen(b);
         k=0;
         for(j=lena-1;j>=0;j--)
         {
             a1[k++]=a[j]-'0';
         }
         k=0;
         for(j=lenb-1;j>=0;j--)
         {
           b1[k++]=b[j]-'0';
         }
         j=0;
         while(j<=lena||j<=lenb)
         {
             if(sum[j]+a1[j]+b1[j]>=10)
             {
                 sum[j+1]=sum[j+1]+1;
                 sum[j]=sum[j]+a1[j]+b1[j]-10;
             }
             else
             sum[j]=sum[j]+a1[j]+b1[j];
                 j++;
         }
         printf("Case %d:n",i+1);
         printf("%s + %s = ",b);
         if(sum[j-1])
         {
             for(k=j-1;k>=0;k--)
              printf("%d",sum[k]);
         }
        else
         {
             for(k=j-2;k>=0;k--)
             printf("%d",sum[k]);
         }
         printf("n");
         if(i<t-1)
         printf("n");
        memset(a,sizeof(sum));
        memset(b,sizeof(sum));
        memset(a1,sizeof(sum));
        memset(b1,sizeof(sum));
        memset(sum,sizeof(sum));
     }
 }
    return 0;
}


可见java对于大数操作是多么的方便~

(编辑:李大同)

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

    推荐文章
      热点阅读