PAT 1017. A除以B

来源:互联网 发布:新人座谈会心得知乎 编辑:程序博客网 时间:2024/05/16 06:17

原题链接:http://pat.zju.edu.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 <stdio.h>#include <cstring>const int MAX_LEN = 10001;int main(){  char input[MAX_LEN];  char Q[MAX_LEN];  int R, q_len;  int b;  while(scanf("%s %d", input, &b)!=EOF)  {    int len = strlen(input);    int i = 0;    int m = 0;    q_len = 0;    while(i < len)    {      m +=(input[i] - '0');      if(m>=b)      {        Q[q_len++] = (m/b+'0');        m = m%b;      }      else if(q_len>0){        Q[q_len++] = '0';      }      R =m;      m *= 10;      i++;    }    if(q_len == 0){      Q[q_len++] = '0';    }    Q[q_len] = '\0';    printf("%s %d\n", Q, R);  }  return 0;}


0 0
原创粉丝点击