将一个数的每一位逆序输出
将一个数的每一位逆序输出
首先需要一个变量来存储这个数
int n; scanf("%d", &n);
然后要得到这个数的每一位,
而且要先输出个位,然后输出十位,然后输出百位……
我们考虑使用循环,
int i; for (i = 1; i <= n; i *= 10) printf("%d ", n / i % 10);
把i的初值定为1
然后进入第一次循环,也就是n / 1 % 10,也就是n % 10,得到个位,
第二次循环n / 10 % 10可以得到十位,因为整型数据之间相除结果向下取整,
假如n是123,则 123 / 10之后的结果是12,然后用12 % 10就可以得到十位2了,
第三次循环求得百位
……
然后以此类推,一直到最位。
综上所述
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int i; for (i = 1; i <= n; i *= 10) printf("%d ", n / i % 10); //第一次得到个位,第二次得到十位,第三次得到百位…… return 0; }
也可以使用递归的方法来解决这个问题
void inversion(int n) { if (n != 0) //n一直除以10,直到为0时不满足条件。 { printf("%d", n % 10); //得到数的最后一位 inversion(n / 10); //每次让n/10,然后n%10得到最后一位 } else return; }
即
#include <stdio.h> void inversion(int n); int main(void) { int n; scanf("%d", &n); inversion(n); return 0; } void inversion(int n) { if (n != 0) //n一直除以10,直到为0时不满足条件。 { printf("%d", n % 10); //得到数的最后一位 inversion(n / 10); //每次让n/10,然后n%10得到最后一位 } else return; }
递归过程简要分析
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具