#include<iostream>
#include<cstring>
using namespace std;
int r;//全局变量余数
struct bign{//大整数结构体
int d[1000];
int len;
bign(){
memset(d,0,sizeof(d));
len=0;
}
};
bign change(char str[])//str数组转bign类型,将低位放在前面便于运算
{
bign a;
a.len=strlen(str);
for(int i=0;i<a.len;i++)
{
a.d[i]=str[a.len-i-1]-'0';
//cout<<a.d[i]<<endl;
}
return a;
}
bign div(bign a,int b)//大整数除int函数
{
bign c;
c.len=a.len;//设商位数与被除数相同
for(int i=a.len-1;i>=0;i--)//高位开始除
{
r=r*10+a.d[i];
if(r>=b)//够除则除
{
c.d[i]=r/b;
r=r%b;
}
else//不够除商对应位置0
{
c.d[i]=0;
}
}
while(c.len-1>=1&&c.d[c.len-1]==0)//将商的高位为0的位去除,且保留至少一位
{
c.len--;
}
return c;
}
void print(bign a)//输出大整数
{
for(int i=a.len-1;i>=0;i--)
{
cout<<a.d[i];
}
cout<<" ";
}
int main(){
char str[1000];
int b;
cin>>str>>b;
bign a=change(str);
bign c=div(a,b);
// cout<<strlen(str)<<endl<<str<<endl;
//cout<<a.len<<endl;
//print(a);
print(c);
cout<<r;
return 0;
}
第一个大整数类型的题,虽然是大整数除int,但至少是个开始,感觉难度还可以接受,继续加油