信奥一本通1308
1308:【例1.5】高精除
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 16005 通过数: 7852
【题目描述】
高精除以高精,求它们的商和余数。
【输入】
输入两个低于300位的正整数。
【输出】
输出商和余数。
【输入样例】
1231312318457577687897987642324567864324567876543245671425346756786867867867
1231312318767141738178325678412414124141425346756786867867867
【输出样例】
999999999748590
179780909068307566598992807564736854549985603543237528310337
#include
using namespace std;
void read(int a[]){string s;cin>>s;a[0]=s.size();for(int i=1;i<=a[0];i++)a[i]=s[a[0]-i]^48;while(!a[a[0]]&&a[0]>1)a[0]--;
}
bool cmp(int a[],int b[],int p){if(a[0]-p+1>b[0])return true;if(a[0]-p+1=p;i--,j--){if(a[i]>b[j])return true;if(a[i]1)a[0]--;
}
void div(int a[],int b[],int c[]){memset(c,0,sizeof(c));c[0]=a[0];for(int i=c[0];i;i--){while(cmp(a,b,i)){sub(a,b,i);c[i]++;}}while(!c[c[0]]&&c[0]>1)c[0]--;
}
void write(int a[]){for(int i=a[0];i;i--)cout<
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
