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

题目信息

本题要求计算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系列文章更新重心已移至Github,欢迎来看PAT题解的小伙伴请到Github Pages浏览最新内容。...
    OliverLew阅读 1,760评论 0 2
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,184评论 1 19
  • 学习的课程,对于学生而言,是老师准备好的,跟着学就是了,特别是这种操作性比较强的活动。 其实,老师的排课,不应该是...
    大麦茶的故事阅读 414评论 0 0
  • 汉太祖高皇帝刘邦是一个比较好色的皇帝,在没有正式娶老婆的时候就已经跟一个姓曹的女人生了孩子,后来,天上掉下了个吕雉...
    悠悠千古事阅读 291评论 0 0
  • 今早不甘心又到医院做进一步检查,虽然医生说没什么,发现有甲状腺问题的人真多,还有10几岁的孩子,不由得愤慨中国食盐...
    周华14134阅读 241评论 0 3