1 条题解

  • 0
    @ 2025-11-30 16:26:40

    C :

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #define maxn 210
    
    typedef struct bign{
    int a[maxn];
    int len;
    }bign;
    
    bign change(char s[]){
    bign c;
    c.len=0;
    memset(c.a,0,sizeof(c.a));
    int len = strlen(s);
    for(int i = 0;i < len; i++)c.a[c.len++] = s[len-1-i] - 48;
    return c;
    }
    
    bign proc(bign A, bign B) {
    bign C;
    C.len = 0;
    memset(C.a,0,sizeof(C.a));
    for(int i = 0;i < A.len || i < B.len; i++) {
        if(A.a[i] < B.a[i]) {
            A.a[i+1]--;
            A.a[i] += 10;
        }
        C.a[C.len++] = A.a[i] - B.a[i];
    }
    while(C.len - 1 >= 1 && C.a[C.len-1] == 0) {
        C.len--;
    }
    return C;
    }
    
    int biger(bign A, bign B) {
    if(A.len>B.len)return 1;
    if(A.len<B.len) return 0;
    for(int i = A.len-1;i >= 0; i--) {
        if(A.a[i]<B.a[i])return 0;
    }
    return 1;
    }
    
    int main()
    {
        char a[maxn], b[maxn];
        while(scanf("%s %s",a,b) != EOF) {
            bign A = change(a);
            bign B = change(b);
            if(biger(A,B)){
                bign ans = proc(A,B);
                for(int i = ans.len-1;i >= 0; i--){
                    printf("%d",ans.a[i]);
                }
                printf("\n");
                continue;
            }
            bign ans = proc(B,A);
            printf("-");
            for(int i = ans.len-1;i >= 0;i--)printf("%d",ans.a[i]);
            printf("\n");
        }
        return 0;
    }
    

    C++ :

    #include<iostream>
    using namespace std;
    string a,b,c,fh;
    int a1[256],a2[256],x,y,z,u;
    int main()
    {
        cin>>a>>b;
        x=a.length()-1;
        y=b.length()-1;
        if ((y>x) || ((y==x) && (b>a))) 
        {
             fh='-';
             c=a;a=b;b=c;
             u=y;y=x;x=u;
        } 
        for (z=0;z<=x;z++) a1[x-z]=a[z]-'0';
        for (z=0;z<=y;z++) a2[y-z]=b[z]-'0';
        if (a==b) cout<<"0";
        else 
        {
             for (z=0;z<=y;z++) 
                  {
                       a1[z+1]=a1[z+1]-1;
                       a1[z]=a1[z]+10-a2[z];
                       a1[z+1]=a1[z+1]+(a1[z]/10);
                       a1[z]=a1[z]%10;
                  }
             u=x;
             while (a1[u]==0) {u--;}
             cout<<fh;
             for (z=u;z>=0;z--) cout<<a1[z];
             }
        //system("pause");
        return 0;
    }
    
    
    

    Java :

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

    Python :

    # coding=utf-8
    s=eval(input())
    t=eval(input())
    print(s-t)
    
    • 1

    信息

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