题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 例如输入−380,反转后得到的新数为−83。 输入 输入共 1 行,一个整数 。 输出 输出共 1 行,一个整数,表示反转后的新数。 样例输入 复制 123 样例输出 复制 321
问题分析 我们需要将一个整数的各个位上的数字进行反转,同时处理以下特殊情况: 1. 负数的处理:如果输入是负数,反转后的数也应该是负数。 2. 前导零的处理:反转后的数不能有前导零(除非原数本身就是0)。例如,输入`-380`,反转后应为`-83`而不是`-083`。 3. 零的情况:如果输入是0,输出也是0。 解决思路 1. 符号分离:首先判断输入数字的正负性,记录下符号(正或负),然后对绝对值部分进行处理。 2. 逐位取模和构建新数:通过循环不断地取出原数的最后一位(使用取模运算`%10`),并将其添加到新数的末尾(通过乘以10再加上当前位实现)。原数不断除以10以去掉已经处理过的最后一位。 3. 恢复符号:根据之前记录的符号,给最终结果加上相应的正负号。 4. 边界条件处理:特别注意当输入为0时直接返回0;以及处理过程中可能出现的溢出问题(但在本题中通常不需要考虑,因为Python支持大整数)。 步骤详解 以样例输入`123`为例: - 初始值:num = 123, rev = 0 - 第一次迭代: - pop = 123 % 10 = 3 → rev = rev*10 + pop = 0*10+3=3; num = 123//10=12 - 第二次迭代: - pop = 12 % 10 = 2 → rev = 3*10+2=32; num = 12//10=1 - 第三次迭代: - pop = 1 % 10 = 1 → rev = 32*10+1=321; num = 1//10=0 (结束循环) - 最终结果:321 再比如输入`-380`: - 先提取符号为负,然后处理绝对值380: - pop = 380 % 10 = 0 → rev = 0*10+0=0; num = 380//10=38 - pop = 38 % 10 = 8 → rev = 0*10+8=8; num = 38//10=3 - pop = 3 % 10 = 3 → rev = 8*10+3=83; num = 3//10=0 (结束循环) - 加上符号后得到-83 Python代码实现 ```python def reverse_integer(n): sign = -1 if n < 0 else 1 num = abs(n) rev = 0 while num > 0: pop = num % 10 # 获取最后一位数字 rev = rev * 10 + pop # 构建反转后的数字 num = num // 10 # 移除已处理的最后一位 return sign * rev # 读取输入并输出结果 input_num = int(input()) print(reverse_integer(input_num)) ``` 代码解释 1. 函数定义:`reverse_integer`函数接收一个整数`n`作为参数。 2. 确定符号:通过判断`n`是否小于0来决定结果的符号(`sign`变量)。 3. 处理绝对值:使用`abs(n)`得到`num`,确保后续操作都在非负数上进行。 4. 反转数字:通过循环不断取出`num`的最后一位(`pop = num % 10`),并将其添加到`rev`的末尾(`rev = rev * 10 + pop`),同时更新`num`为去掉最后一位后的值(`num = num // 10`)。 5. 应用符号:最后将反转后的数字乘以之前的符号得到正确结果。 6. 输入输出:从标准输入读取整数,调用函数并打印结果。 这种方法高效且简洁,能够正确处理正数、负数以及包含零的情况。 [2025-12-17 12:22:55 | AI问答 | 990点数解答]
- [字节豆包] 输入一个有符号整数n,将n中的数字部分反转后的结果。 输入格式: "%d" 输出格式: "%d\n" 输入样例1: 123 输出样例1: 321 输入样例2: -123 输出样例2: -321 输入样例2: -123 输出样例2: -321 输入样例3: -130 输出样例3: -31(190点数解答 | 2024-09-29 11:19:48)225
- [字节豆包] 输入一个有符号整数n,将n中的数字部分反转后的结果。 输入格式: "%d" 输出格式: "%d\n" 输入样例1: 123 输出样例1: 321 输入样例2: -123 输出样例2: -321 输入样例2: -123 输出样例2: -321 输入样例3: -130 输出样例3: -31(188点数解答 | 2024-09-29 11:21:26)347
- [字节豆包] 7-1 句子反转 分数 30 作者 陈宇璟 单位 浙江大学 给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。 要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。 举一个例子: we choose to go 2 the 123 moon 程序应当输出: moon 321 the 2 go to choose we 输入格式 仅一行,即需要反转的句子。 输出格式 仅一行,表示程序对句子的处理结果。 说明/提示 样例解释 首先应当按单词逆序,即: moon 123 the 2 go to choose we 小写变大写、大写变小写、倒转自然数之后,得到最终结果: moon 321 the 2 go to choose we 数据规模与约定 对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。 输入样例: we choose to go 2 the 123 moon 输出样例: moon 321 the 2 go to(131点数解答 | 2024-11-11 16:44:49)398
- [字节豆包] 使用c| 7-1 句子反转 分数 30 作者 陈宇璟 单位 浙江大学 给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。 要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。 举一个例子: we choose to go 2 the 123 moon 程序应当输出: moon 321 the 2 go to choose we 输入格式 仅一行,即需要反转的句子。 输出格式 仅一行,表示程序对句子的处理结果。 说明/提示 样例解释 首先应当按单词逆序,即: moon 123 the 2 go to choose we 小写变大写、大写变小写、倒转自然数之后,得到最终结果: moon 321 the 2 go to choose we 数据规模与约定 对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。 输入样例: we choose to go 2 the 123 moon 输出样例: moon 321 the 2(393点数解答 | 2024-11-11 16:45:21)534
- [百度文心] -1 句子反转 分数 30 作者 陈宇璟 单位 浙江大学 给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。 要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。 举一个例子: we choose to go 2 the 123 moon 程序应当输出: moon 321 the 2 go to choose we 输入格式 仅一行,即需要反转的句子。 输出格式 仅一行,表示程序对句子的处理结果。 说明/提示 样例解释 首先应当按单词逆序,即: moon 123 the 2 go to choose we 小写变大写、大写变小写、倒转自然数之后,得到最终结果: moon 321 the 2 go to choose we 数据规模与约定 对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。 输入样例: we choose to go 2 the 123 moon 输出样例: moon 321 the 2 go to(451点数解答 | 2025-10-25 11:33:27)71
- [百度文心] C-1 句子反转 分数 30 作者 陈宇璟 单位 浙江大学 给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。 要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。 举一个例子: we choose to go 2 the 123 moon 程序应当输出: moon 321 the 2 go to choose we 输入格式 仅一行,即需要反转的句子。 输出格式 仅一行,表示程序对句子的处理结果。 说明/提示 样例解释 首先应当按单词逆序,即: moon 123 the 2 go to choose we 小写变大写、大写变小写、倒转自然数之后,得到最终结果: moon 321 the 2 go to choose we 数据规模与约定 对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。 输入样例: we choose to go 2 the 123 moon 输出样例: moon 321 the 2 go to,用C语言完成(1010点数解答 | 2025-10-25 11:34:26)82
- [阿里通义] C-1 句子反转 分数 30 作者 陈宇璟 单位 浙江大学 给定一行句子,每个词之间用空格隔开,要么是全小写英文单词,要么是全大写英文单词,要么是自然数。 要求将这些单词倒序输出。而且对于每个单词,如果是小写词,应当转为大写;如果是大写词,应当转为小写;如果是自然数,应该倒转输出。 举一个例子: we choose to go 2 the 123 moon 程序应当输出: moon 321 the 2 go to choose we 输入格式 仅一行,即需要反转的句子。 输出格式 仅一行,表示程序对句子的处理结果。 说明/提示 样例解释 首先应当按单词逆序,即: moon 123 the 2 go to choose we 小写变大写、大写变小写、倒转自然数之后,得到最终结果: moon 321 the 2 go to choose we 数据规模与约定 对于 100% 的数据,句子中包含的单词数量不超过 1000,每个单词长度不超过 6。 输入样例: we choose to go 2 the 123 moon 输出样例: moon 321 the 2 go to,用C语言完成 (712点数解答 | 2025-10-25 11:35:19)74
- [字节豆包] 给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 例如输入−380,反转后得到的新数为−83。 输入 输入共 1 行,一个整数 𝑁 [ − 10 9 , 10 9 ] 。 输出 输出共 1 行,一个整数,表示反转后的新数。 样例输入 复制 123 样例输出 复制 321(401点数解答 | 2025-12-07 13:10:33)48
- [字节豆包] 给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 例如输入−380,反转后得到的新数为−83。 输入 输入共 1 行,一个整数 𝑁 [ − 10 9 , 10 9 ] 。 输出 输出共 1 行,一个整数,表示反转后的新数。 样例输入 复制 123 样例输出 复制 321 来源/分类(194点数解答 | 2025-12-13 20:01:35)35
- [讯飞星火] 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 例如输入−380,反转后得到的新数为−83。 输入 输入共 1 行,一个整数 。 输出 输出共 1 行,一个整数,表示反转后的新数。 样例输入 复制 123 样例输出 复制 321(990点数解答 | 2025-12-17 12:22:55)25
- [DeepSeek] 题目描述 给定一个整数,请将该数各个位上数字反转得到一个新数。 新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零 例如输入−380,反转后得到的新数为−83。 输入 输入共 1 行,一个整数 。 输出 输出共 1 行,一个整数,表示反转后的新数。 样例输入 复制 123 样例输出 复制 321 来源/分类(159点数解答 | 2025-12-25 12:21:49)25
- [DeepSeek] 从键盘读入一个整数n,输出如下图形 如: n = 3 n=3,输出 123 123 123 123 123 123 如: n = 5 n=5,输出 12345 12345 12345 12345 12345 12345 12345 12345 12345 12345 输入格式 一个正整数 n n。 输出格式 输出 n n 行图形。c++(184点数解答 | 2025-12-06 14:48:06)46