PAT乙级.1017. A除以B (20)
来源:互联网 发布:js弹出确认对话框 编辑:程序博客网 时间:2024/05/16 15:43
题目
本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。
输入格式
输入在1行中依次给出A和B,中间以1空格分隔。
输出格式
在1行中依次输出Q和R,中间以1空格分隔。
输入样例
123456789050987654321 7
输出样例
17636684150141093474 3
PAT链接
思路
数据结构
int r; //用作余数struct bign{ int d[1000]; int len; bign() { fill(d,d+sizeof(d)/sizeof(d[0]),0); //或memset(d,0,sizeof(d)) len = 0; }};
代码
/*** @tag PAT_B_1017* @authors R11happy (xushuai100@126.com)* @date 2016-9-10 22:16-* @version 1.0* @Language C++* @Ranking 930/309* @function null*/#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;int r; //用作余数struct bign{ int d[1000]; int len; bign() { fill(d,d+sizeof(d)/sizeof(d[0]),0); //或memset(d,0,sizeof(d)) len = 0; }};bign change(char str[]){ bign a; a.len = strlen(str); for (int i = 0; i<a.len; i++) { a.d[i] = str[a.len - 1 - i] - '0'; } return a;}int compare(bign a, bign b){ if (a.len > b.len) return 1; else if (a.len < b.len) return -1; else { for (int i = a.len - 1; i >= 0; i--) { if (a.d[i] > b.d[i]) return 1; else if (a.d[i] < b.d[i]) return -1; } } return 0;}bign div(bign a, int b){ bign c; c.len = a.len; for (int i = a.len - 1; i >= 0; i--) { r = r * 10 + a.d[i]; c.d[i] = r / b; r = r % b; } while (c.len - 1 > 0 && c.d[c.len - 1] == 0) { c.len--; } return c;}int main(int argc, char const *argv[]){ char str[1000]; int b; scanf("%s %d", str, &b); bign a = change(str); bign c = div(a, b); // 输出商 for (int i = c.len - 1; i >= 0; i--) { printf("%d", c.d[i]); } // 输出余数 printf(" %d\n", r); return 0;}
收获
0 0
- PAT-乙级-1017. A除以B (20)
- PAT乙级.1017. A除以B (20)
- PAT乙级 1017. A除以B (20)
- 1017. A除以B (20) PAT乙级
- PAT乙级1017. A除以B (20)
- 1017. A除以B (20)--PAT乙级
- PAT乙级 1017. A除以B (20)
- PAT乙级1017. A除以B (20)
- PAT 乙级 1017. A除以B (20)
- [PAT乙级]1017. A除以B (20)
- pat 乙级 1017. A除以B (20)
- 1017. A除以B (20)--PAT乙级
- PAT乙级1017. A除以B(20)
- PAT乙级 1017. A除以B
- PAT 乙级 1017. A除以B
- PAT(乙级)1017. A除以B
- PAT乙级:1017. A除以B (C)
- [PAT-乙级]1017.A除以B
- 《LINUX3.0内核源代码分析》第二章:中断和异常(3)
- poj 1322 Chocolate 概率dp
- 针对Xcode升级到8之后,注释失效的解决方法
- 数组
- iOS绘图——Quartz 2D使用方法
- PAT乙级.1017. A除以B (20)
- foreach 循环详解
- Jenkins学习总结(6)——了解DevOps的前世今生
- 进程间的几种常用通信方式
- 分享Kali Linux 2016.2最新镜像20160919
- radio单选框效果代码(css3)
- native关键字简单理解
- cuda、库命令
- http中get与 post的区别