一、问题分析:
要把整数逐位输出,无论正序还是反序,都需要将各个位分离。
在C中的做法就是,通过对10取余,取出个位,然后通过除以10,起到“移位”的效果。
二、算法设计:
1、输入要处理的整数;
2、取出各位;
3、递归调用,以当前值除以10为参数;
4、当值为0时退出。
正序和反序输出,取决于递归调用和输出的位置关系。
三、参考代码:
正序:
#include void func(int n){ int v; if(n==0) return;//到0结束。 v=n%10;//取出个位。 func(n/10);//递归调用 printf("%d ", v);//输出。}int main(){ int n; scanf("%d",&n);//输入。 func(n);//调用函数,正序输出各个位。 return 0;}
反序:
#include void func(int n){ int v; if(n==0) return;//到0结束。 v=n%10;//取出个位。 printf("%d ", v);//输出。 func(n/10);//递归调用}int main(){ int n; scanf("%d",&n);//输入。 func(n);//调用函数,正序输出各个位。 return 0;}