PAT 乙级 1037 在霍格沃茨找零钱(20)C++版
1037. 在霍格沃茨找零钱(20)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。
输入格式:
输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galleon是[0, 107]区间内的整数,Sickle是[0, 17)区间内的整数,Knut是[0, 29)区间内的整数。
输出格式:
在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。
输入样例1:
10.16.27 14.1.28
输出样例1:
3.2.1
输入样例2:
14.1.28 10.16.27
输出样例2:
-3.2.1 难点:如何将三个整数用A.B.C形式输入读取成功
思路2难点:输出处,必须满足固定的输出方式 思路1:先将P和A的2钱数全部转换为最小计量数,然后再作差,再转换为三级单位表示的形式
思路2:自接加减补进 思路1代码:
// 1037.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream> using namespace std; class money
{
public:
int Galleon;
int Sickle;
int Knut; int get_knut();
money get_money(int knut);
void show_money(money m,bool b);
}; int main()
{
money P, A,temp; cin >> P.Galleon;
getchar();//读取 . 下同
cin >> P.Sickle;
getchar();
cin>> P.Knut; cin >> A.Galleon;
getchar();
cin >> A.Sickle;
getchar();
cin >> A.Knut; //多个函数综合到一起
temp.show_money(temp.get_money(A.get_knut() - P.get_knut()), (A.get_knut() - P.get_knut()) >= ?:);
} //计算总knut
int money::get_knut()
{
return * * this->Galleon + * this->Sickle + this->Knut;
} //将返回一个类的对象,存储差价
money money::get_money(int knut)
{
this->Galleon = knut / / ;
knut -= Galleon * * ;
this->Sickle = knut/;
knut -= Sickle * ;
this->Knut = knut; return *this;
} //按类形式输出结果
void money::show_money(money m,bool b)
{
if (b)
cout << m.Galleon << "." << m.Sickle << "." << m.Knut << endl;
else
cout << m.Galleon << "." << -m.Sickle << "." << -m.Knut << endl;
}
当然第三十八行可读性非常差,不过也只是将几个函数综合到一起,看起来比较复杂,其实内容很简单
思路2代码:
// 1037_1.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream> using namespace std; class money
{
public:
int Galleon;
int Sickle;
int Knut;
}; int main()
{
money P, A, temp; cin >> P.Galleon;
getchar();//读取 . 下同
cin >> P.Sickle;
getchar();
cin >> P.Knut; cin >> A.Galleon;
getchar();
cin >> A.Sickle;
getchar();
cin >> A.Knut; if (A.Knut < P.Knut)
{
temp.Knut = + A.Knut - P.Knut;
A.Sickle--;
}
else
temp.Knut = A.Knut - P.Knut; if (A.Sickle < P.Sickle)
{
temp.Sickle =+ A.Sickle - P.Sickle;
A.Galleon--;
}
else
temp.Sickle = A.Sickle - P.Sickle; temp.Galleon = A.Galleon - P.Galleon; if (temp.Galleon < )
{
if (temp.Knut > )
{
temp.Knut -= ;
temp.Sickle++;
} if (temp.Sickle > )
{
temp.Sickle -= ;
temp.Galleon++;
} cout << temp.Galleon << "." << -temp.Sickle << "." << -temp.Knut << endl;
}
else
cout << temp.Galleon << "." << temp.Sickle << "." << temp.Knut << endl; return ;
}
PAT 乙级 1037 在霍格沃茨找零钱(20)C++版的更多相关文章
- PAT乙级-1037. 在霍格沃茨找零钱(20)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.& ...
- PAT Basic 1037 在霍格沃茨找零钱 (20 分)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...
- PAT(B) 1037 在霍格沃茨找零钱(Java)
题目链接:1037 在霍格沃茨找零钱 (20 point(s)) 题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle) ...
- PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...
- 1037 在霍格沃茨找零钱 (20 分)C语言
题目描述 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二 十九个纳特(Knut)兑一个西可 ...
- pat(B) 1037. 在霍格沃茨找零钱(水题)
代码: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> ...
- PAT (Basic Level) Practise (中文)-1037. 在霍格沃茨找零钱(20)
PAT (Basic Level) Practise (中文)-1037. 在霍格沃茨找零钱(20) http://www.patest.cn/contests/pat-b-practise/1037 ...
- PAT 1037 在霍格沃茨找零钱(20)(代码+思路)
1037 在霍格沃茨找零钱(20)(20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon) ...
- PAT-乙级-1037. 在霍格沃茨找零钱(20)
1037. 在霍格沃茨找零钱(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 如果你是哈利·波特迷,你会知 ...
随机推荐
- centos6:一个网卡上显示多个ip地址的错误
网卡显示如下: 上面显示em1有两个ip地址,其中36是设置的固定IP,212这个ip不清楚怎么搞出来的,但是通过212地址也能够正常连接主机.重启网卡之后,还是没有变化. 网卡em1配置如下,/e ...
- SDWebImage导入问题
最新的SDWebImage由于是基于ARC模式写的,如果创建的是非ARC醒目的童鞋们注意,导入文件夹之后,先添加ImageIO.framework,mapKit.framework这两个库,在非ARC ...
- grafana+influxdb+telegraf监控服务器cpu,内存和硬盘
随便抄了一篇,目前我们的项目也在用,这个是linux和windows通吃的一种监控方案,非常有效,详细和优美,需要监控什么具体的业务内容,自己向influxdb中插入就行了. 监控服务器状态是运维必不 ...
- IOC和DI 控制反转和依赖注入
首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/b ...
- iTween的用法总结
Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Introd ...
- 辞树的QAQ水题(字符串统计,思维)
思路:统计一串字符有多少个'A',并分别统计出每个'A'前后有多少'Q'.然后让每个'A'前后的'Q'相乘并相加就能得出结果了. 注意:数据的类型,卡了int,要用long long. 还有就是在pc ...
- 【矩阵快速幂】【杭电OJ1757】
http://acm.hdu.edu.cn/showproblem.php?pid=1757 A Simple Math Problem Time Limit: 3000/1000 MS (Java/ ...
- ubuntu编译python源码的坑
在linux平台下编译python时只需要3条命令. 编译步骤 在github或https://www.python.org/downloads/中下载python源码 解压压缩包进路目录执行 1. ...
- java 2和java有什么区别
Java是一种通用的,并发的,强类型的,面向对象的编程语言. JDK是Sun公司分发的免费Java开发工具包,正式名称为J2SDK(Java2 Software Develop Kit). 包括基本的 ...
- Reaction 开源可自定义实时的电商平台
Reaction 开源可自定义实时的电商平台,支持以下特性 拖放商品 订单处理 支付 物流 税 折扣 Analytics(分析) 与许多第三方应用程序集成 graphql 开发api 简单demo 使 ...