1 条题解
-
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
信息
- ID
- 1482
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者