思路
从高位开始做除法,余数保留,下一轮开始时被除的数为本位+上一轮余数*10,依次类推。
优化点
我是用了一个数组来储存字符串数组转成的int,看了别人的代码才想到可以即时-‘0’;
同样,我用了一个数组来储存商,其实可以一位一位即时输出。
注意点
注意商等于0的情况
代码
#include<stdio.h>
int main(){
char a[1001];
int B;
int b[1000];
scanf("%s%d",a,&B);
int i;
for(i=0;a[i]!='\0';i++){
b[i]=a[i]-'0';
}
int q[1000];
int r=0;
int temp;//我当时用来调试时看数据的
for(int n=0;n<i;n++){
temp=b[n];
temp+=r*10;
q[n]=temp/B;
r=temp%B;
}
int cnt=0;
for(int t=0;t<i;t++){
if(q[t]!=0){
cnt++;
}
if(cnt!=0){
printf("%d",q[t]);
}
}
if(cnt==0){
printf("0");
}
printf(" %d",r);
return 0;
}