单位转换 问题描述 小杨这周的数学作业是做单位转换,喜欢编程的小杨决定编程帮他解决这些问题。 小杨只学了长度单位和重量单位,具体来说: (1)长度单位包括千米( km )、米( m )、毫米( mm ),它们之间的关系是:1km=1000m=1000000 mm。 (2)重量单位包括千克( kg )、克( g )、毫克( mg ),它们之间的关系是:1kg=1000g=1000000mg 。 小杨的作业只涉及将更大的单位转换为更小的单位,也就是说,小杨的作业只会包含如下题型:米转换为毫米,千米转换为毫米,千米转换为米,克转换为毫克,千克转换为毫克,千克转换为克。 现在,请你帮忙完成单位转换的程序。 输入描述 输入的第一行为一个整数 N,表示题目数量。 接下来 N行,每行一个字符串,表示转换单位的题目,格式为 x 单位1 = ? 单位2 。其中, x 为一个不超过1000的非负整数, 单位1 和 单位2 分别为两个单位的英文缩写,保证它们都是长度单位或都是重量单位,且 单位1 比 单位2 更大。 例如,如果题目需要你将1km 转换为 mm,则输入为 1 km = ? mm 。 输出描述 输出N 行,依次输出所有题目的答案,输出时,只需要将输入中的 ? 代入答案,其余部分一字不差地输出即可。由于小杨的题目只涉及将更大的单位转换为更小的单位,并且输入的 x 是整数,因此答案一定也是整数。 例如,如果题目需要你将1km 转换为 mm,输入为 1 km = ? mm ,则你需要输出 1 km = 1000000 mm 。 特别提醒 在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。输入格式将严格按照题目要求,且你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。

正确答案:换算到最小单位:km=1000000,m=1000,mm=1;kg=1000000,g=1000,mg=1。按空格分割每行取x,u1,u2,结果=x*fac[u1]//fac[u2],把原行中?替换为该数,其余原样输出。
试卷来源:2025全国青少年信息素养大赛C++算法创意实践挑战赛(小学组_复赛)模拟题