1 条题解

  • 0
    @ 2024-12-24 9:59:26

    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
    上传者