C语言如何实现将数字的最后一位移动到首位
实现思路
要完成把数字最后一位移到首位的操作,你只需要补全三步逻辑即可:
- 计算原数字去掉最后一位后的剩余部分
- 计算原数字的长度对应的10的幂次(位数减1次方)
- 用「最后一位 * 幂次 + 剩余部分」得到最终结果
完整可运行代码
#include <stdio.h> int main() { int number; scanf ("%d", &number); // 处理个位数的特殊情况,移动后和原数字一致 if (number < 10) { printf("%d", number); return 0; } int lastDigit = number % 10; int remaining = number / 10; int power = 1; // 循环计算10的幂次 int temp = remaining; while (temp > 0) { power *= 10; temp /= 10; } int result = lastDigit * power + remaining; printf("%d", result); return 0; }
代码说明
以你给出的示例1234为例:
- 计算得到最后一位
lastDigit = 1234 % 10 = 4 - 去掉最后一位的剩余部分
remaining = 1234 / 10 = 123 - 循环计算得到
power = 1000(remaining为123,循环3次,1连续乘3次10得到1000) - 最终结果
4 * 1000 + 123 = 4123,和预期效果一致
内容的提问来源于stack exchange,提问作者Tara
相关产品推荐
相关产品推荐

