1 条题解
-
0
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
- 上传者