1017. A除以B (20) (数学啊 ZJU_PAT)

来源:互联网 发布:人工智能炒作逻辑 编辑:程序博客网 时间:2024/04/20 09:08

题目链接:http://www.patest.cn/contests/pat-b-practise/1017


本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。

输入格式:

输入在1行中依次给出A和B,中间以1空格分隔。

输出格式:

在1行中依次输出Q和R,中间以1空格分隔。

输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3

代码如下:

#include <cstdio>#include <cstring>const int maxn = 1117;int main(){char a[maxn];int b, c[maxn];scanf("%s",a);scanf("%d",&b);if(b == 0){printf("0 %s\n",a);return 0;}int i;int len = strlen(a);int tt = 0;int flag = 0;int l = 0;for(i = 0; i < len; i++){tt = tt*10+(a[i]-'0');c[l++] = tt/b;tt = tt%b;}int mark = 0;for(i = 0; i < l; i++){if(flag == 0 && c[i]==0)//前导零{continue;}else{flag = 1;}mark = 1;printf("%d",c[i]);}if(!mark)//a < bprintf("0");printf(" %d\n",tt);return 0;}



1 0