1 solutions

  • 0
    @ 2025-11-5 19:55:43

    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