《tzoj5024》大数除以小数

《tzoj5024》大数除以小数》 第一次写博客,拿来记录下oj上写的代码,方便以后能回忆。 描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商 数Q和余数R,使得A = B * Q + R成立。 输入 输入在1行中依次给出A和B,中间以1空格分隔。 输出 在1行中依次输出Q和R,中间以1空格分隔。 样例输入 123456789050987654321 7 样例输出 17636684150141093474 3

【《tzoj5024》大数除以小数】#include
using namespace std;
typedef long long LL;
//const int N = 1e5+5;
int main()
{
string s;
int a,t,q,i,m,flag;
cin >> s;
cin >> a;
flag = 0;
//对首位的处理,因为首位没有前一位,故要特别处理.
t = s[0]-‘0’;
if(s.size() == 1)//如果a只有一位
{
printf("%d",t/a);
printf(" %d\n",t%a);
}
else
{
if(t > a)
{
printf("%d",t/a);
q = t%a;
flag = 1;
}
else q = t;
for(i=1; i {
t = s[i]-‘0’;
m = q*10+t;
if(m/a != 0 || flag == 1)//此处为输出的一大坑:如果前面都为0,的话就不要输出0,比如0025,输出应该是25.
{
printf("%d",m/a);
flag = 1;
}
q = m%a;
}
printf(" %d\n",q);
}
}

    推荐阅读