大数除法(除数在int范围内)
#include<iostream> #include<cstdio> #include<cstring> #define N 1000 using namespace std; void division(char bcs[],int cs,char res[]) //被除数为大数,除数为int范围内 { int i,k,len,t=0,s=0; bool flag=false; //商是否有了第一个有效位,防止商首部一直出现0 len=strlen(bcs); for(i=0,k=0; i<len; i++) { t=s*10+(bcs[i]-48); //新余数 if(t/cs>0||t==0) //余数为0要修改商 { res[k++]=t/cs+48; s=t%cs; flag=true; } else //不够除,修改余数 { s=t; if(flag) //商已经有有效位了,补零 res[k++]='0'; } } for(i=0;i<k;i++) cout<<res[i]; cout<<endl; cout<<s<<endl; } int main() { char num[N],res[N]; int n; scanf("%s%d",num,&n); division(num,n,res); return 0; }