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。。受不鸟 #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; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |