PAT Basic 1017
2024-08-25 05:17:38
1017 A除以B(20 分)
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。
输入格式:
输入在一行中依次给出 A 和 B,中间以 1 空格分隔。
输出格式:
在一行中依次输出 Q 和 R,中间以 1 空格分隔。
输入样例:
123456789050987654321 7
输出样例:
17636684150141093474 3
题解:这道题目是模拟除法,刚开始做法一直有点问题,有一个测试点无法通过,后来借鉴了别人的思路,才写出一份AC代码。
原先错误代码:
#include<iostream>
#include<string> using namespace std; int main()
{
string a,q;
int b, r;
cin>>a>>b;
for( int i = ; i < a.length(); i++)
{ if( a[i] - '' < b && i + < a.length()){
if( i != ) q += '';
i++;
a[i] += (a[i-] - '')*;
} if( i + == a.length()){
if( a[i] - '' < b){
q += '';
r = a[i] - '';
break;
}
else{
q += (((a[i] - '')/b) + '');
r = (a[i] - '')%b;
break;
}
}
q += (((a[i] - '')/b) + '');
a[i+] += ((a[i] - '')%b)*;
}
cout<<q<<' '<<r;
return ;
}
但是这段代码我至今不知道那个测试点为什么过不去,如果有大佬知道,欢迎在评论区留言讨论。
以下为AC代码:
#include<iostream>
#include<string> using namespace std; int main()
{
string a, q;
int b, r, temp;
cin>>a>>b;
temp = a[] - '';
if( temp >= b ) q += temp / b + '';
r = temp % b;
for( int i = ; i < a.length(); i++){
temp = r* + a[i] - '';
q += temp / b + '';
r = temp % b;
}
if( a.length() == ){
q = "";
q += (a[] - '')/ b + '';
r = (a[] - '')% b;
}
cout<<q<<" "<<r;
return ;
}
这道题我感觉数据特别强,也给我一个启示就是,如果一个方法做不出来,或许是方法有问题,我可以试着简化思路,换个方法。
最新文章
- 简约之美Jodd-http--深入源码理解http协议
- DB2导入导出数据库数据
- Java 重写(Overriding)和重载(Overloading)
- git 学习笔记6--remote &; log
- linux getch()实现
- JS实现星级评分
- Something wrong with FTK OCR
- bootstrap真是个好东西
- Thread was being aborted.你遇到了吗?
- IOS学习之路二十四(UIImageView 加载gif图片)
- 基于visual Studio2013解决面试题之1307二分查找
- 使用multer搭建一个图片接收服务器
- spring中设计模式
- PID控制器开发笔记之十三:单神经元PID控制器的实现
- Unity UGUI Layout自动排版组件用法介绍
- 【Java每日一题】20170223
- Docker镜像命令
- (转) 6 ways of mean-centering data in R
- 2017-2018-2 20155315《网络对抗技术》Exp9 :Web安全基础
- package.json中版本理解
热门文章
- 模拟ssh、黏包、hashlib模块(MD5)
- github添加版本号
- 转 PHP界面显示中文乱码
- jQuery制作一个多彩下拉菜单按钮
- Windows如何利用输入法简单的打出 ‘↑’ ‘↓’ ‘↖’等箭头
- G. Of Zorcs and Axes 二分 + 贪心 —— STL的用法
- shell脚本由基础变量及特殊变量($@、$*、$#等)到实战。
- Ubuntu安装新英伟达驱动出现问题解决方法
- mysqlsla安装和使用介绍
- 洛谷 P1629 邮递员送信