1 solutions
-
0
C :
#include<stdio.h> #include<string.h> int main() { int i,j,c,up; char a[10000],b[10000]="0",temp; while(gets(a)) { if(strlen(a)==1&&a[0]=='0') { j=strlen(b)-1; for(i=0;i<strlen(b)/2;i++) { temp=b[i]; b[i]=b[j]; b[j]=temp; j--; } puts(b); break; } j=strlen(a)-1; for(i=0;i<strlen(a)/2;i++) { temp=a[i]; a[i]=a[j]; a[j]=temp; j--; } if(strlen(a)>strlen(b)) { for(i=strlen(b);i<strlen(a);i++) { b[i]='0'; } } else { for(i=strlen(a);i<strlen(b);i++) { a[i]='0'; } } for(i=0;i<strlen(a);i++) { c=(a[i]-'0'+b[i]-'0'); if(up==1) { c++; up=0; } if(c<10) b[i]=c+'0'; else { c=c-10; b[i]=c+'0'; up=1; } } if(up==1) { b[strlen(b)]='1'; } } return 0; }C++ :
#include<iostream> #include <string.h> using namespace std; int main() { char a[105][105]; int b[105][105],sum[110]; memset(sum, 0, sizeof(sum)) ; //将sum[]数组清零 int i,len,m,k,g; for(i=0;i<105;i++) { cin.getline(a[i],105,'\n'); len=strlen(a[i]); if(len==1 && a[i][0]=='0') break; //i为输入大数的个数 } for(m=0;m<i;m++) { len=strlen(a[m]); g=0; for(k=len-1;k>=0;k--) { b[m][g]=a[m][k]-'0'; g++; //实现逆序存放 } } for(m=0;m<i;m++) { len=strlen(a[m]); for(k=0;k<len;k++) { sum[k]+=b[m][k]; //实现相加 } } for(k=0;k<104;k++) //处理结果中的进位问题 { if(sum[k] > 9) { sum[k + 1] += sum[k] / 10 ; sum[k] %= 10 ; } } for(k=109;k>=0;k--) { if(sum[k]!=0) break; } if(k==0) cout<<sum[0]; else { for(m=k;m>=0;m--) cout<<sum[m]; } cout<<endl; return 0; }Java :
import java.util.*; import java.math.BigDecimal; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); BigDecimal a,b=new BigDecimal(0),c=b; while(sc.hasNext()){ a=sc.nextBigDecimal(); if(a.compareTo(c)==0){ System.out.println(b); break; } b=b.add(a); } } }
- 1
Information
- ID
- 19836
- Time
- 1000ms
- Memory
- 32MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By