标签:
Description
Input
Output
Sample Input
123456789012345678901234567890 123456789012345678901234567890 123456789012345678901234567890 0
Sample Output
370370367037037036703703703670
大数相加问题:
#include<string.h> #include<stdio.h> #include<stdlib.h> char str[105],sum[105],ssum[105]; int main(){ char c; int len,i,flag,slen,k,j; //memset(sum,'0',sizeof(sum)); flag=1; while(~scanf("%s",str)){ len=strlen(str); if(len==1&&str[0]=='0') break; if(flag){ strcpy(sum,str); flag=0; } else{ slen=strlen(sum); for(k=0;len>=0||slen>=0;len--,slen--,k++){ if(len>=0&&slen>=0) ssum[k]=str[len]+sum[slen]-'0'+c; if(len<0&&slen>=0) ssum[k]=sum[slen]+c; if(len>=0&&slen<0) ssum[k]=str[len]+c; c=0; //进位加上之后要清零 if(ssum[k]>'9'){ ssum[k]-=10; c=1; } } if(c==1) ssum[k]='1'; for(i=strlen(ssum)-1,j=0;i>=0,j<strlen(ssum)-1;j++,i--){ sum[j]=ssum[i]; } //printf("%s\n",sum); } } printf("%s\n",sum); return 0; }
import java.io.*; import java.math.*; class Bigint { public static void main(String[] args) throws Exception{ String s1 = null; BigInteger bint = null; BufferedReader bin = new BufferedReader(new InputStreamReader(System.in)); s1 = bin.readLine(); while(!s1.equals("0")) { if(bint == null) { bint = new BigInteger(s1); } else { bint = bint.add(new BigInteger(s1)); } s1 = bin.readLine(); } if(s1.equals("0")) { System.out.println(bint.toString()); } } }
标签:
原文地址:http://blog.csdn.net/jinjide_ajin/article/details/51366184