C的困难
本帖最后由 不枉风来水顺 于 2023-11-20 10:27 编辑这个题不明白这个单位转化是什么意思呀!!
由于喵星人和汪星人属于不同的物种,他们的度量衡也不同,比如喵星人的某单位M乘上11,然后再减去23173恰好等于汪星人的某单位W。也就是说0M等于-23173W,1M等于-23162W,现在请你写一段程序来帮助喵星人和汪星人做单位变换。
输入格式:
只有一行,为一个长度大于1且不超过12的字符串。其中最后一个字符只可能是W或M,代表相应的单位。其它字符代表一个整数,其中A代表负号(只可能是第一个字符),B到K代表9到0。
输出格式:
也只有一行,为变换后的结果(数字用阿拉伯数字,单位仍用M和W)。如果输入的单位为M,则转换为对应的W值输出;如果输入的单位为W,则转换为对应的M值输出;测试数据保证1、输入合法;2、除法运算不会有余数;3、运算过程中所有整数都可以用int存储。
输入样例:
JKM
输出样例:
-23063W
求解答!{:5_104:}
用C语言应该怎么解决呀 def unit_conversion(s):
unit = s[-1]
number = int(s[:-1].replace('A', '-').replace('B', '9').replace('C', '8').replace('D', '7').replace('E', '6').replace('F', '5').replace('G', '4').replace('H', '3').replace('I', '2').replace('J', '1').replace('K', '0'))
if unit == 'M':
result = number * 11 - 23173
return str(result) + 'W'
elif unit == 'W':
result = (number + 23173) // 11
return str(result) + 'M'
print(unit_conversion('JKM'))# 输出: -23063W
这段代码首先根据输入的字符串确定单位是M还是W,然后将字符串中的字母转换为对应的数字,再根据题目给出的转换规则进行计算,最后返回转换后的结果。 根据题目描述,喵星人的单位M乘以11再减去23173得到汪星人的单位W,也就是说 M = (W + 23173) / 11。因此可以根据这个关系来编写一个程序来实现单位的转换。
下面是一个简单的C++程序示例,用于实现喵星人和汪星人单位的转换:
#include <iostream>
#include <string>
using namespace std;
int main() {
string input;
cin >> input;
int value = stoi(input.substr(0, input.size() - 1));
char unit = input.back();
if (unit == 'M') {
int result = (value * 11 - 23173);
cout << result << "W" << endl;
} else if (unit == 'W') {
int result = (value + 23173) / 11;
cout << result << "M" << endl;
}
return 0;
}
这个程序首先读取输入的字符串,然后根据输入的最后一个字符判断单位是M还是W。根据不同的情况进行相应的单位转换计算,并输出结果。
对于输入样例"JKM",程序将输出"-23063W",与题目要求的输出样例一致。
页:
[1]