A28821. 数字交换
填空题
中等
知识点
题目描述
数字交换
题目描述
前导 0:整数前对数值无影响的 0。
例如:
0201去除前导 0后为 201;
00321去除前导 0后为 321。
给定一个正整数 n,请将n的最高位与最低位的数字进行交换,并输出交换后的结果。如果交换后的结果有前导0,去除前导0后再输出结果。
例 1:n=173,将 173 的最高位1与最低位3 交换,交换后的结果为371;
例 2:n=10200,将 10200 的最高位1与最低位0交换,交换后的结果为 00201,结果有前导0,去除前导0后的结果为201。
输入格式
输入一个正整n(100≤n≤109)
输出格式
输出一个整数,表示将 n的最高位与最低位的数字交换后的结果如果交换后的结果有前导 0,去除前导0后再输出结果
输入样例
173输出样例
371参考答案
#include <iostream>
#include <string>
using namespace std;
int main() {
int n;
cin >> n; // 输入正整数n
string str = to_string(n); // 将整数n转换为字符串,便于操作每一位数字
int len = str.length(); // 获取数字的长度,即位数
// 交换字符串的第一位(最高位)和最后一位(最低位)
swap(str[0], str[len - 1]);
// 将修改后的字符串转换回整数,并自动去除前导零
int new_n = stoi(str);
cout << new_n; // 输出结果
return 0; // 程序正常结束
}答案解析
评分标准:
4分:能正确输出第一组数据
4分:能正确输出第二组数据
4分:能正确输出第三组数据
4分:能正确输出第四组数据
4分:能正确输出第五组数据
4分:能正确输出第六组数据
4分:能正确输出第七组数据
4分:能正确输出第八组数据
4分:能正确输出第九组数据
4分:能正确输出第十组数据
上一题
下一题