1 条题解
-
0
C++ :
#include<iostream> #include<string> #include<algorithm> using namespace std; const int N = 1005; int a[N],b[N],c[N],d[N]; void zhuan(string s,int a[]){ fill(a,a+N,0); a[0]=s.size(); for (int i=1; i<=a[0]; i++) a[i]=s[a[0]-i]-48; } void mul10(int a[]){ if (a[0]==1 && a[1]==0) return; for (int i=a[0]; i>=1; i--) a[i+1]=a[i]; a[1]=0; a[0]++; } bool isbig(int a[],int b[]){ if (a[0]!=b[0]) return a[0]>b[0]; for (int i=a[0]; i>=1; i--) if (a[i]!=b[i]) return a[i]>b[i]; return true; } void sub(int a[],int b[]){ for (int i=1; i<=a[0]; i++){ if (a[i]<b[i]) a[i+1]--,a[i]+=10; a[i]-=b[i]; } while (a[a[0]]==0 && a[0]>1) a[0]--; } void div(int a[],int b[],int c[],int d[]){ fill(c,c+N,0); fill(d,d+N,0); c[0]=a[0]; d[0]=1; for (int i=c[0]; i>=1; i--){ mul10(d); d[1]=a[i]; while (isbig(d,b)){ sub(d,b); c[i]++; } } while (c[c[0]]==0 && c[0]>1) c[0]--; } void output(int a[]){ for (int i=a[0]; i>=1; i--) cout<<a[i]; cout<<endl; } int main(){ string s1,s2; cin>>s1>>s2; zhuan(s1,a); zhuan(s2,b); div(a,b,c,d); output(c); output(d); return 0; }
Java :
import java.math.BigDecimal; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigDecimal b1 = cin.nextBigDecimal(); BigDecimal b2 = cin.nextBigDecimal(); BigDecimal[] b3 = b1.divideAndRemainder(b2); System.out.println(b3[0]); System.out.println(b3[1]); } }
- 1
信息
- ID
- 512
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者