题目难度:一个半星
题目大意:大整数除以一个一位整数,输出商和余数。
题目难度:看到算法笔记上的写法,写了一个判断是否够除的一个判断,但是感觉不需要,加入不够除的话,除了之后的结果依旧是0,所以本人认为算法笔记上的那个多余,加上去逻辑格外清楚。
代码如下:
#include<iostream>
#include<stdlib.h>
#include<queue>
#include<stack>
#include<algorithm>
#include<map>
#include<cstring>
using namespace std;
struct bign{
int n[1010];
int len;
bign(){
memset(n,0,sizeof(n));
len=0;
}
};
void tobign(bign &b,char A[]){
for(int i=0;i<strlen(A);i++){
b.n[i]=A[strlen(A)-i-1]-'0';
}
b.len=strlen(A);
}
int main(){
char A[1010];
int B;
cin>>A>>B;
bign bigA,ans;
tobign(bigA,A);
int c=0;
ans.len=bigA.len;
for(int i=bigA.len-1;i>=0;i--){
c=c*10+bigA.n[i];
ans.n[i]=c/B;
c%=B;
}
while(ans.len>=2&&ans.n[ans.len-1]==0){
ans.len--;
}
for(int i=ans.len-1;i>=0;i--){
cout<<ans.n[i];
}
cout<<" "<<c<<endl;
return 0;
}