哈利

PTA7-8 哈利·波特的考试

百般思念 提交于 2020-03-01 01:37:35
描述 哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。 反方向变化的魔咒就是简单地将原来的魔咒倒过来念 ,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。 现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。老师允许他自己带一只动物去考场,要考察他把这只动物变成任意一只指定动物的本事。于是他来问你 带什么动物去可以让最难变的那种动物(即该动物变为哈利·波特自己带去的动物所需要的魔咒最长)需要的魔咒最短 ?例如:如果只有猫、鼠、鱼,则显然哈利·波特应该带鼠去,因为鼠变成另外两种动物都只需要念4个字符;而如果带猫去,则至少需要念6个字符才能把猫变成鱼;同理,带鱼去也不是最好的选择。 输入格式: 输入说明:输入第1行给出两个正整数N (≤100)和M,其中N是考试涉及的动物总数,M是用于直接变形的魔咒条数。为简单起见,我们将动物按1~N编号。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度(≤100),数字之间用空格分隔。 输出格式: 输出哈利·波特应该带去考场的动物的编号、以及最长的变形魔咒的长度,中间以空格分隔

B1037 在霍格沃茨找零钱

你离开我真会死。 提交于 2020-02-24 20:35:37
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 10 ​7 ​​ ] 区间内的整数,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 思路: 1.将货币都转换为Knut,方便计算 2.假设找零为change,则最后change/17*29即为Galleon,change%Galleon/Sickle即为Sickle,change/Sickle即为Knut C++代码: nclude < cstdio > const int Galleon = 17 * 29 ; //1个Galleon对换17

20190511——作业练习

主宰稳场 提交于 2020-02-16 03:22:19
1、 '''请你写一段代码: 为哈利·波特的猫头鹰起个名字,并打印出结果哈利·波特的猫头鹰叫做XX(XX是你起的名字)。''' name = input('请给哈利·波特的猫头鹰取一个名字:') print('哈利·波特的猫头鹰叫做'+name) >>>请给哈利·波特的猫头鹰取一个名字: 小新 哈利·波特的猫头鹰叫做小新 2、 '''请你写一段代码,并满足以下条件: 如果罗恩一天吃超过10个巧克力蛙,罗恩要给哈利100块; 如果罗恩一天吃小于等于10个的巧克力蛙,哈利就给罗恩100块。 输入罗恩吃的巧克力数量,并判断是哈利给罗恩钱,还是罗恩给哈利钱。''' number = int(input('请输入罗恩今天吃巧克力蛙的数量')) if number>10: print('罗恩要给哈利100块') else : print('哈利就给罗恩100块') 3、 ''' 小精灵:您好,欢迎古灵阁,请问您需要帮助吗?需要or不需要? 你:需要 小精灵:请问您需要什么帮助呢?1 存取款;2 货币兑换;3 咨询 你:2 小精灵:金加隆和人民币的兑换率为1:51.3,即一金加隆=51.3人民币 小精灵:请问您需要兑换多少金加隆呢? (你说了一个数字N) 小精灵:好的,我知道了,您需要兑换(你说的数字N)金加隆。 小精灵:那么,您需要付给我(你说的数字N*51.3)人民币。 注1

B1037在霍格沃兹找零钱

拥有回忆 提交于 2020-02-10 18:38:32
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut ,其间用 1 个空格分隔。这里 Galleon 是 [0, 1] 区间内的整数, 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 思路: •进制转换需要分别用到三部分,所以用string不方便的,故一份钱用三个变量来存储,输入的时候用scanf_s("%d.%d.%d %d.%d.%d", &g1, &s1, &k1, &g2, &s2, &转换规•以Knut为单位的钱,然后判断大小决定是否需要输出负号,最后转换回去,输出。 1 #include <iostream> 2 #include

数据结构与算法题目集(中文)7-8 哈利·波特的考试 (25分)

蓝咒 提交于 2020-02-07 01:25:27
1.题目 哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。 现在哈利·波特的手里有一本教材,里面列出了所有的变形魔咒和能变的动物。老师允许他自己带一只动物去考场,要考察他把这只动物变成任意一只指定动物的本事。于是他来问你:带什么动物去可以让最难变的那种动物(即该动物变为哈利·波特自己带去的动物所需要的魔咒最长)需要的魔咒最短?例如:如果只有猫、鼠、鱼,则显然哈利·波特应该带鼠去,因为鼠变成另外两种动物都只需要念4个字符;而如果带猫去,则至少需要念6个字符才能把猫变成鱼;同理,带鱼去也不是最好的选择。 输入格式: 输入说明:输入第1行给出两个正整数N (≤100)和M,其中N是考试涉及的动物总数,M是用于直接变形的魔咒条数。为简单起见,我们将动物按1~N编号。随后M行,每行给出了3个正整数,分别是两种动物的编号、以及它们之间变形需要的魔咒的长度(≤100),数字之间用空格分隔。 输出格式: 输出哈利·波特应该带去考场的动物的编号、以及最长的变形魔咒的长度,中间以空格分隔

在霍格沃茨找零钱(PAT)

落花浮王杯 提交于 2020-02-06 06:02:08
1.题目描述: 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二 十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱P和他实付的钱A,你的任务是写一个程序来计算他应该被找的零钱。 2.输入描述: 输入在1行中分别给出P和A,格式为“Galleon.Sickle.Knut”,其间用1个空格分隔。这里Galleon是[0, 107]]区间内的整数,Sickle是[0, 17)区间内的整数,Knut是[0, 29)区间内的整数。 3.输出描述: 在一行中用与输入同样的格式输出哈利应该被找的零钱。如果他没带够钱,那么输出的应该是负数。 4.输入例子: 10.16 .27 14.1 .28 5.输出例子: 3.2 .1 6.源代码: # include <stdio.h> int main ( ) { char c ; int A1 , B1 , C1 ; int A2 , B2 , C2 ; int A , B , C ; scanf ( "%d%c%d%c%d" , & A1 , & c , & B1 , & c , & C1 ) ; scanf ( "%d%c%d%c%d" , & A2 , & c , & B2 , & c , & C2 ) ; A = A2 - A1

P1037 在霍格沃茨找零钱

柔情痞子 提交于 2020-01-24 15:53:24
转跳点: 🐏 1037 在霍格沃茨找零钱 (20分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut ,其间用 1 个空格分隔。这里 Galleon 是 [0, 1] 区间内的整数, 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   这道题,如果按写一个进制转换的思路会有点麻烦。我AC思路是,把所有货币都转成 Knut ,然后Knut和Knut相减,判断一下符号,取个绝对值,在按货币转换机制输出。 AC代码: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main(void) 5 { 6 int

PAT B1037 在霍格沃茨找零钱 (20point(s))

久未见 提交于 2020-01-20 04:25:20
如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut ,其间用 1 个空格分隔。这里 Galleon 是 [0, 10​ 7 ​​] 区间内的整数, 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 思路:进制转换 零->总: g * 17 * 29 + s * 29 + k 总->零:k的单位是29,每满29个k进位成一个s, 所以 k = sum % 29; 除掉k的基数29后,s的单位是17,每17进1,所以 s = sum / 29 % 17 除掉s的基数17后,G的单位是1,所以 g = sum / 29 / 17 % 1; 即除基取余法 code:

PAT乙级真题 1037 在霍格沃茨找零钱 C++实现

一笑奈何 提交于 2019-12-26 12:41:51
题目 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易。”现在,给定哈利应付的价钱 P 和他实付的钱 A,你的任务是写一个程序来计算他应该被找的零钱。 输入格式: 输入在 1 行中分别给出 P 和 A,格式为 Galleon.Sickle.Knut,其间用 1 个空格分隔。这里 Galleon 是 [0, 10^7] 区间内的整数,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 思路 直接各位对应相减,将结果先转化为最小单位knut。 如果是负数则先输出一个负号,然后把knut的绝对值换算成Galleon.Sickle.Knut的形式即可。 代码 # include <stdio.h> int main ( ) { int p [ 3 ] ; int a [ 3 ] ; scanf ( "%d.%d.%d %d.%d.%d" , & p [ 0

luogu P4943 密室 |最短路

杀马特。学长 韩版系。学妹 提交于 2019-12-04 09:31:25
题目描述 密室被打开了。 哈利与罗恩进入了密室,他们发现密室由n个小室组成,所有小室编号分别为:1,2,...,n。所有小室之间有m条通道,对任意两个不同小室最多只有一条通道连接,而每通过一条通道都需要Ci 的时间。 开始时哈利与罗恩都在编号为1的小室里,他们的目标是拯救金妮和寻找日记,但是他们发现金妮和日记可能在两个不同的小室里,为了尽快发现真相,他们决定以最少的时间到达两个目标小室。但是某些小室只有会与蛇对话的人才能进入,也就是只有哈利一个人可以进入。 现在,哈利告诉你密室的结构,请你计算他们到达两个目标小室的最短时间。 输入格式 第一行 n,m,k 表示有n个小室m条通道,k间小室只有哈利可以进入。 第二行 k 个数,表示只有哈利可以进入的小室的编号。(若k=0,不包含该行) 接下来m行,每行3个数:a,b,c 表示a小室与b小室之间有一条需要花费c时间的通道。 最后一行,两个数 x,y 表示哈利与罗恩需要去的小室的编号 输出格式 一行,输出一个数,表示到达两个密室的最短时间。 #include<bits/stdc++.h> #define N 1000005 #define M 100005 #define QAQ 2147483647 using namespace std; inline int read() {//快读 int f=1,x=0; char ch; do