4595: 【GESP2312三级】单位转换
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
⼩杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。
小杨只学了长度单位和重量单位,具体来说:
长度单位包括千米( km )、米( m )、毫米( mm ),它们之间的关系是:
重量单位包括千克( kg )、克( g )、毫克( mg ),它们之间的关系是:
小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。
现在,请你帮忙完成单位转换的程序。
小杨只学了长度单位和重量单位,具体来说:
长度单位包括千米( km )、米( m )、毫米( mm ),它们之间的关系是:
1km=1000m=1000000mm
。重量单位包括千克( kg )、克( g )、毫克( mg ),它们之间的关系是:
1kg=1000g=1000000mg
。小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。
现在,请你帮忙完成单位转换的程序。
输入
输入的第一行为一个整数$N$ ,表示题目数量。
接下来$N$ 行,每行一个字符串,表示转换单位的题目,格式为
例如,如果题目需要你将
保证$1\le N\le 1000$ 。
接下来$N$ 行,每行一个字符串,表示转换单位的题目,格式为
x 单位1 = ? 单位2
。其中, x
为一个不超过$1000$的非负整数, 单位1
和 单位2
分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且 单位1
比 单位2
更大。例如,如果题目需要你将
1km
转换为mm
,则输入为 1 km = ? mm
。保证$1\le N\le 1000$ 。
输出
输出$N$ 行,依次输出所有题目的答案,输出时,只需要将输入中的
由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的
例如,如果题目需要你将
?
代入答案,其余部分一字不差地输出即可。由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的
x
是整数,因此答案一定也是整数。例如,如果题目需要你将
1km
转换为mm
,输入为 1 km = ? mm
,则你需要输出 1 km = 1000000 mm
。
样例输入 复制
2
1 km = ? mm
1 m = ? mm
样例输出 复制
1 km = 1000000 mm
1 m = 1000 mm
提示
#include<bits/stdc++.h> using namespace std; int get_base(char *s) { if (strlen(s) == 1) return 1000; return s[0] == 'k' ? 1000000 : 1; } int main() { int T; scanf("%d", &T); while(T--) { int x; char s1[5], s2[5]; scanf("%d", &x); scanf("%s", s1); scanf("%s", s2), scanf("%s", s2), scanf("%s", s2); //printf("%d%s%s\n",x,s1,s2); printf("%d %s = %d %s\n",x,s1,x*get_base(s1)/get_base(s2),s2); } return 0; }