1 solutions

  • 0
    @ 2024-12-10 23:27:11

    C :

    #include<stdio.h>
    #include<string.h>
    
    #define N 100
    
    
    main()
    {
    	void add(char a[],char b[],char c[]);
    	char a[N],b[N];
    	char str[N];
    	scanf("%s%s",a,b);
    	add(a,b,str);
    	printf("%s",str);
    }
    
    void add(char a[],char b[],char c[])
    {
    	int i,e,d;
    	int n,m;
    	char temp;
    	n=strlen(a);
    	m=strlen(b);
    	for(i=0;i<n/2;i++) {temp=a[i];a[i]=a[n-1-i];a[n-1-i]=temp;}
    	for(i=0;i<m/2;i++) {temp=b[i];b[i]=b[m-1-i];b[m-1-i]=temp;}
    
    	e=0;
    	for(i=0;i<n&&i<m;i++)
    	{
    		d=a[i]-'0'+b[i]-'0'+e;
    		e=d/10;
    		c[i]=d%10+'0';
    	}
    	if(i<m)
    	{
    		for(;i<m;i++)
    		{
    			d=b[i]-'0'+e;
    			e=d/10;
    			c[i]=d%10+'0';
    		}
    	}
    	else
    	{
    		for(;i<n;i++)
    		{
    			d=a[i]-'0'+e;
    			e=d/10;
    			c[i]=d%10+'0';
    		}
    	}
    	if(e) c[i++]=e+'0';
    	c[i]=0;
    	n=i;
    
    	for(i=0;i<n/2;i++) {temp=c[i];c[i]=c[n-1-i];c[n-1-i]=temp;}
    }
    

    C++ :

    #include<cstdio>
    #include<cstring>
    using namespace std;
    struct node
    {
        int len,a[110];
        node()
        {
            memset(a,0,sizeof(a));len=1;    
        }       
    };
    
    node pplus(node n1,node n2)
    {
          node no;int i;
          if (n1.len>n2.len) no.len=n1.len;
          else no.len=n2.len;
          for (i=1;i<=no.len;i++) no.a[i]=n1.a[i]+n2.a[i];
           for (i=1;i<=no.len;i++)
           {
               no.a[i+1]+=no.a[i]/10;
               no.a[i]%=10;
           }i=no.len;
          while (no.a[i+1]>0)
          {
             i++;
             no.a[i+1]=no.a[i]/10;
             no.a[i]%=10;
           }no.len=i;
          return no;
    }
    
    char s1[110],s2[110];
    
    int main()
    {
       node n1,n2,no;int i;
       scanf("%s",s1);
       scanf("%s",s2);
       n1.len=strlen(s1);n2.len=strlen(s2);
       for(i=0;i<n1.len;i++)
           n1.a[i+1]=s1[n1.len-i-1]-'0';
       for(i=0;i<n2.len;i++)
           n2.a[i+1]=s2[n2.len-i-1]-'0';
       no=pplus(n1,n2);
       for(i=no.len;i>=1;i--)
         printf("%d",no.a[i]);
       printf("\n");  
       return 0;
    }
    
    

    Java :

    import java.util.Scanner;
    
    
    
    public class Main {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    Scanner in = new Scanner(System.in);
    
    String a = in.next();
    String b = in.next();
    plus p = new plus();
    p.pl(a, b);
    	}
    
    }
    class plus {
    	String str = "";
    
    	public void pl(String a, String b) {
    		int lenA = a.length();
    		int lenB = b.length();
    		int max = (lenA >= lenB) ? lenA : lenB;
    		int min = (lenB > lenA )? lenA : lenB;
    		String zr = "0";
    
    		for (int i = 0; i < max - min; i++) {
    			str += zr ;
    		}
    		if (max == lenA) {
    			b = str+b;
    			
    		} else {
    			a = str +a;
    		}
    
    		int jw = 0;
    		String haha = "";
    		for (int j = max - 1; j >= 0; j--) {
    			int s=0;
    			
    			int tA = Integer.parseInt(String.valueOf(a.charAt(j)));
    			int tB = Integer.parseInt(String.valueOf(b.charAt(j)));
    			if (tA + tB + jw >= 10) {
    				if(j==0){
    					s += tA + tB +jw;
    					jw = 1;
    				}else{
    					s += tA + tB +jw- 10;
    				jw = 1;
    				}
    				
    			} else {
    				s += tA + tB+jw;
    				jw = 0;
    			}
    			
    			
    			
    ////			str += String.valueOf(s) + str;
    //			System.out.print(String.valueOf(s));
    			haha =String.valueOf(s)+haha;
    			
    		}
    		System.out.println(haha);
    	}
    }
    
    
    • 1

    Information

    ID
    599
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By