美文网首页
PAT (Basic Level):1017 A除以B (20)

PAT (Basic Level):1017 A除以B (20)

作者: 沙_狸 | 来源:发表于2018-06-08 22:18 被阅读0次

题目信息

本题要求计算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>
int main(){
    char a[1000],q[1000];int b,r,cnt=0,temp=0;//cnt是商的位数 
    scanf("%s %d",a,&b);
    for(int i=0;i<strlen(a);i++){
      temp+=a[i]-'0';
      q[cnt++]=temp/b+'0';
      temp=(temp%b)*10;
    } 
    r=temp/10;
    if(q[0]!='0'){
      for(int i=0;i<cnt;i++) printf("%c",q[i]);
      printf(" %d",r);
    }else if(cnt==1){
      printf("0 %d",r);
    }else{
      for(int i=1;i<cnt;i++) printf("%c",q[i]);
      printf(" %d",r);
    }
    return 0;
}

测试结果

image.png

相关文章

网友评论

      本文标题:PAT (Basic Level):1017 A除以B (20)

      本文链接:https://www.haomeiwen.com/subject/dtdzsftx.html