1017 A除以B(高精除以低精)

方法: 逐位试商法。
测试点2: 被除数小于除数

#include <bits/stdc++.h>
using namespace std;
int main(){
	string s;
	int b;
	cin>>s>>b;
	int a[1010],c[1010];
    for(int i=0;i<s.size();i++){//数字 
    	a[i]=s[i]-'0';
	}
	int carry = 0;
	for(int i=0;i<s.size();i++){
		c[i] = (carry*10+a[i])/b;//除法 
		carry = (carry*10+a[i])%b;//余数
	}
	int j=0;
	while(c[j]==0){//将前置0去掉
		j++;
	} 
	int flag = 0;
	for(int i=j;i<s.size();i++){
		cout<<c[i];
		flag = 1;
	}
	if(!flag) cout << "0";
	cout << " " << carry;
	return 0;
}
posted @ 2024-04-15 16:08  YuKiCheng  阅读(6)  评论(0编辑  收藏  举报