B1017|B1017 A除以B (20分)

/*
题意:
1、高精度除法
A是不超过1000的整数,B是一位数,所以你需要输出商和余数R
解题:
1、结构体
2、逆着赋值
3、打印大整数
4、除法实现
learn && wrong:
1、memset函数在cstring和iostream都有
2、记不住呀divide,整整有8个模块
【B1017|B1017 A除以B (20分)】*/

#include #include using namespace std; //结构体 struct bign { int d[1001]; int len; bign(){ memset(d,0,sizeof(d)); len = 0; } }; //转换成bign bign change(char str[]){ bign c; c.len = strlen(str); for(int i = 0; i < c.len; ++i){ c.d[i] = str[c.len - i - 1] - '0'; } return c; } //打印函数 void print(bign a){ for(int i = a.len - 1; i >= 0; --i){ cout<= 0; --i){ r = r* 10 + a.d[i]; if(r < b)c.d[i] = 0; else{ c.d[i] = r / b; r = r % b ; } }while(c.len - 1 >= 1 && c.d[c.len - 1] == 0){ c.len--; } return c; }int main(int argc, char** argv) { char str[1001]; int b; cin>>str>>b; int r = 0; bign a = change(str); //转为大整数 bign c = divide(a,b,r); //除法 print(c); cout<<" "<

    推荐阅读