测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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分:能正确输出第十组数据

上一题 下一题