1 条题解

  • 0
    @ 2025-4-14 18:41:37

    C :

    #include<stdio.h>
    #include<string.h>	
    int X[510],Y[510];
    int go(int b,int d)
    {
    	int c;
    	X[b]=10+d;
    	c=X[b+1]-1;
    	if(c<0)
    	go(b+1,-1);
    	else X[b+1]=c;
    }
    int main()
    {
    	char A[510],B[510];
    
    	int a,b,c,x,y,z,i,j,k,l,m,n,o,p,q,r,s,t;
    	while(scanf("%s%s",&A,&B)!=EOF)
    	{
    		memset(X,0,sizeof(X));
    		memset(Y,0,sizeof(Y));
    		for(a=0,b=strlen(A)-1;b>=0;a++,b--)
    		X[a]=A[b]-'0';
    		for(a=0,b=strlen(B)-1;b>=0;a++,b--)
    		Y[a]=B[b]-'0';
    		for(b=501;b>=0;b--)
    		{
    			c=X[b]-Y[b];
    			if(c>=0)
    			X[b]=c;
    			else 
    			go(b,c);
    		}
    		for(b=501;b>=0&&X[b]==0;b--);
    		if(b<0)printf("0\n");
    		else 
    		{
    			for(b;b>=0;b--)
    			printf("%d",X[b]);
    			printf("\n");
    		}
    	}
    	return 0;
    }
    

    C++ :

    #include<iostream>
    #include<cstdlib>
    #include<algorithm>
    #include<cstdio>
    #include<cstring>
    
    using namespace std;
    
    const int N = 505;
    
    char a[N], b[N], t[N];
    
    void sub(char s1[],char s2[],char t[])
    {
        int i,l2,l1,k;
        l2=strlen(s2);l1=strlen(s1);
        t[l1]='\0';l1--;
        for (i=l2-1;i>=0;i--,l1--)
            {
            if (s1[l1]-s2[i]>=0)
                t[l1]=s1[l1]-s2[i]+'0';
            else
                {
                t[l1]=10+s1[l1]-s2[i]+'0';
                s1[l1-1]=s1[l1-1]-1;
                }
            }
        k=l1;
        while(s1[k]<0) {s1[k]+=10;s1[k-1]-=1;k--;}
        while(l1>=0) {t[l1]=s1[l1];l1--;}
    loop:
        if (t[0]=='0')
            {
            l1=strlen(s1);
            for (i=0;i<l1-1;i++) t[i]=t[i+1];
                t[l1-1]='\0';
            goto loop;
            }
        if (strlen(t)==0) {t[0]='0';t[1]='\0';}
    }
    
    int main()
    {
    //    freopen("in.txt", "r", stdin);
    //    freopen("out.txt", "w", stdout);
        while(~scanf("%s%s", a, b))
        {
            sub(a, b, t);
            printf("%s\n", t);
        }
        return 0;
    }
    
    

    Java :

    import java.util.*;
    import java.math.*;
    
    public class Main {
    	public static void main(String[] a) {
    		Scanner cin = new Scanner(System.in);
    		while (cin.hasNext()) {
    			BigInteger b, c;
    			b = cin.nextBigInteger();
    			c = cin.nextBigInteger();
    			System.out.println(b.subtract(c));
    		}
    	}
    }
    
    
    • 1

    信息

    ID
    3058
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者