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

zoj_1292 Integer Inquiry(大数相加)

发布时间:2020-12-14 04:07:20 所属栏目:大数据 来源:网络整理
导读:1 , 使用java解决? 直接调用java提供的大数处理的类就行了。最后直接用System.out.println()输出。 import java.math.BigInteger;import java.util.Scanner;public class zoj_1292 { public static void main(String[] args) { Scanner sc = new Scanner(
1 , 使用java解决?

直接调用java提供的大数处理的类就行了。最后直接用System.out.println()输出。


import java.math.BigInteger;
import java.util.Scanner;

public class zoj_1292 
{
 public static void main(String[] args) 
 {
   Scanner sc = new Scanner(System.in);
   BigInteger a=BigInteger.valueOf(0);
   BigInteger b=BigInteger.valueOf(0);

   while(sc.hasNext())
   {
    int n;
    n = sc.nextInt();
    for(int i=0;i<n;i++)
     { if(i!=0) System.out.println();?
      while(true)
     {
      a=sc.nextBigInteger();
      if(a.compareTo(BigInteger.valueOf(0))==0) break;
      b=b.add(a);
     }
     System.out.println(b);
    }
   }
}
}


2, 整体思路,由于读入的大数的位数都一样,所以可以使读入的每一个大数的相同位相加。最后再考虑进位。整体思路是对的。。而且在vc上也是对的,但是wa。。受不鸟
? ? ? ?这里对c++输入输出不太了解的可以看看这个 http://see.xidian.edu.cn/cpp/biancheng/view/116.html


#include<stdio.h>  
#include<string.h>  
#include<iostream>  
using namespace std;  
  
char a[100];  
int res[105]={0};  
  
int main()  
{  
    int n,i,j;  
    int length;  
    cin>>n;  
    getchar();  
    for(i=0;i<n;i++)  
    {  
        
        while(1)  
        {     
            scanf("%s",a);
            length=strlen(a);
		
            if(length==1&&a[0]=='0')  
            {  
                break;  
            }  
            else  
            {  
                for(i=0;i<length;i++)  
		{
                  res[i]+=a[length-1-i]-'0';  
				
		}
            }  
        }  
  
        //进位  
        for(i=0;i<105;i++)  
        {  
            res[i+1]+=res[i]/10;  
            res[i]=res[i]%10;  
		
        }  
  
        //输出  
        for(i=105;i>0;i--)  
        {  
            if(res[i]!=0)  
            {  
                for(j=i;j>=0;j--)  
                   cout<<res[j];  

		cout<<endl;//表示输出一个回车,并flash缓冲区。
                 
                break;  
            }  
        }  
      
	if(i!=n-1)  
            cout<<endl; 	
    }  
      
}

(编辑:李大同)

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

    推荐文章
      热点阅读