题目地址:点这里
参考博客:点这里
分析:
本题是模拟大数除法:思路是从最高位起除以除数b的商,若够除或被除数a是各位数,则输出。求余数=高位%b,此后每次商=(余数*10+a的后一位)/b;
代码:
#include<iostream>
//#include<cstring>
using namespace std;
int main(){
string a;
int b,shang,yu=0;
cin>>a>>b;
shang=(a[0]-'0')/b;
int len=a.length();
if(shang!=0||len==1) //最高位除得过或a是个位数
cout<<shang;
yu=(a[0]-'0')%b;
for(int i=1;i<len;i++){ //余数*10+下一位
shang=(10*yu+a[i]-'0')/b;
cout<<shang;
yu=(10*yu+a[i]-'0')%b;
}
cout<<" "<<yu;
return 0;
}
小知识:头文件是被暗含引用的,所以本题可以不写头文件。但是写了最好,否则在某些情况下是会出错的。