高精度/单精度
#include<cstdio>
using namespace std;
int a[10000];//用来模拟笔算的数组(我一般习惯开大一点)
int y;//除数
int l=0;//记录被除数有多少位
int yushu;//模拟到每一位的运算时的余数
int shang;//模拟到每一位的运算时的商
int f=0;//输出时记录是否应该输出当前这一位(避免前导0)
int main()
{
char c=getchar();
while (c>='0' && c<='9')
{
l++;
a[l]=(c-'0');
c=getchar();
}//以上是读入被除数并存在a数组里(类似快读)(也可以按字符串读入并处理)
scanf("%d",&y);//输入除数
for (int i=1;i<=l;i++)//将每一位都处理到
{
yushu=a[i]%y;//第i位的余数
shang=a[i]/y;//第i位的商
a[i]=shang;//这步应该都理解吧
a[i+1]+=yushu*10;//把余数弄到下一位(想想竖式除法是怎么做的)
}//以上是高精度除以单精度的过程
for (int i=1;i<=l;i++)
{
if (f==0 && a[i]>0) f=1;//f=1代表已经开始输出非0位了
if (f==1) putchar(a[i]+'0');//输出(也可以直接printf("%d",a[i]);)
}
return 0;//结束了
}