【PAT (Basic Level) Practice】——【大整数运算】1017 A除以B
2022/1/28 23:37:39
本文主要是介绍【PAT (Basic Level) Practice】——【大整数运算】1017 A除以B,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 一【题目难度】
- 二【题目编号】
- 三【题目描述】
- 四【题目示例】
- 五【解题思路】
- 六【最终得分】
- 七【代码实现】
- 八【提交结果】
一【题目难度】
- 乙级
二【题目编号】
- 1017 A除以B (20 分)
三【题目描述】
- 本题要求计算 A / B A/B A/B,其中 A A A 是不超过 1000 1000 1000 位的正整数, B B B 是 1 1 1 位正整数。你需要输出商数 Q Q Q 和余数 R R R,使得 A = B × Q + R A=B×Q+R A=B×Q+R 成立。
四【题目示例】
-
输入格式:
输入在一行中依次给出 A A A 和 B B B,中间以 1 1 1 空格分隔。 -
输出格式:
在一行中依次输出 Q Q Q 和 R R R,中间以 1 1 1 空格分隔。 -
输入样例:
123456789050987654321 7 -
输出样例:
17636684150141093474 3
五【解题思路】
- 很明显这道题不能用普通的方法计算,因为没有哪个数据类型可以支持1000位的数字,所以这应该想让我们手动模拟除法和取模的运算,我们可以想象我们手动计算的时候,从最高位开始除以除数,如果够除就上商(输出)且将余数(模)扩大10倍继续运算,不够除就将余数(模)扩大10倍继续运算,那么我们程序也一样在模拟这个过程。其中需要注意的是,我们首先要把第一位先判断一下,否则如果第一位不够除会商0(输出0),这个格式不符合答案要求,所以先判断一下,只有A的长度为1(一次运算即可),或者用第一位算的商不为0(说明够除)并且长度大于1(有余数(模)),这个时候才输出,不够除的情况不输出,这样就避免了输出0而导致格式不正确,然后更新余数(模)按序运算即可
六【最终得分】
- 20分
七【代码实现】
#include<stdio.h> #include<string.h> int main() { char A[1001]; int B,Q,R = 0; scanf("%s %d",A,&B); int len = strlen(A); Q = (A[0] - '0') / B; if(len == 1 || (Q != 0 && len > 1)) { printf("%d",Q); } R = (A[0] - '0') % B; for(int i = 1;i<len;i++) { Q = ((R*10) + (A[i] - '0')) / B; printf("%d",Q); R = ((R*10) + (A[i] - '0')) % B; } printf(" %d",R); return 0; }
八【提交结果】
这篇关于【PAT (Basic Level) Practice】——【大整数运算】1017 A除以B的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-25Elevate Your Lead Generation Game with Maps Scraper AI
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能