循环中的递推

循环中的递推

题目:

输入一正整数 k,求出它是几位数,并按逆序输出该数。

例如,
原数是 321,应输出 123

代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>

int main() {
int k, count = 0, reverse_num = 0;
printf("请输入一个正整数:");
scanf_s("%d", &k);
while (k > 0) {
int digit = k % 10; // 取最后一位数字
reverse_num = reverse_num * 10 + digit; // 拼接逆序数字
k = k / 10; // 去掉最后一位
count++; // 位数加1
}

printf("该数是%d位数,逆序输出为%d\n", count, reverse_num);

return 0;
}

备注

这里运用了递推的方法

  1. 取最后一位数字
  2. 将已经得到的数字*10,空出个位,再加上取得的最后一位数字
  3. 去掉取得的最后一位数字,以此往复

因为我上课时想半天没有想出来递推,一直在想我那几把数组,故特此记笔记!!!


循环中的递推
http://example.com/2025/11/14/循环中的递推/
作者
王柏森
发布于
2025年11月14日
许可协议