pta乙级1037在霍格沃兹找零钱
文章图片
文章图片
思路:
1.输入6个数字分别代表钱币
2.从西可开始比较,如果要付的比实际付的多,向前面借位,but!!!此处要注意,如果纳特为0,借位之后变成-1是不可以的,所以这种情况还要继续向加隆借位。如果加隆减完之后为负数,就直接输出。
注意:此处加隆可以是10的7次方,建议用long long int
#include
using namespace std;
int main()
{
long long int a=0,b=0,c=0,d=0,e=0,f=0;
char ch[20];
cin>>a>>ch[0]>>b>>ch[1]>>c>>d>>ch[2]>>e>>ch[3]>>f;
if(f>=c) c=f-c;
if(f=b) b=e-b;
if(e
文章图片
错因分析:钱不够时输出的是负数,指三位数都是欠的钱,而在我的代码中,我只有加隆那一位代表缺的钱。
我发现错误不止一个。
1.b和c在运算过程中发生了改变,这时候不能用两个if,应该用if和else if来确保两个指令不会都执行。
【pta乙级1037在霍格沃兹找零钱】2.针对之前的问题,再分个类就好了,很简单。
#include
using namespace std;
int main()
{
long long int a=0,b=0,c=0,d=0,e=0,f=0;
char ch[20];
cin>>a>>ch[0]>>b>>ch[1]>>c>>d>>ch[2]>>e>>ch[3]>>f;
if(d*17*29+e*29+f>=a*17*29+b*29+c)
{
if(f>=c) c=f-c;
else if(f=b) b=e-b;
else if(ec)
{
c=c-f+29;
b--;
}
if(b>=e) b=b-e;
else if(e>b)
{
b=b-e+17;
a--;
}
a=d-a;
cout<
搞定!!
文章图片
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PAT乙级(1007)
- firewalld与iptables防火墙工具详细介绍
- 用js玩转Scriptable,超简单教程
- IPTABLES的连接跟踪与NAT分析
- docker容器|docker 启动container的时候出现iptables failed
- PTA题目集|6-2 单链表结点删除(20 分)_单链表的删除节点的两种方式——还是双指针和链表覆盖好用
- PTA题目集|6-5 链表逆置(20 分)——头插或者重开新链表头插
- PTA题目集|6-4 建立学生信息链表(20 分)——尾插建链表_题程序访问是越界——真是醉了,你自己跑下是会抛出异常的
- Ptaxi网约车看好中国网约车市场|Ptaxi网约车看好中国网约车市场 戴姆勒与吉利合资欲进网约车抢蛋糕
- #|Unity - 可编程渲染管线(Scriptable Render Pipeline)