打印一个数的每一位
举个例子:我们现在要求打印出123的每一位数字。我们需要去想123%10等于3,就可以把3单独打印出来了,然后再将123/10可以得到12,将12%10就可以打印出2,而我们最后想打印出1,只需要1%10就可以得到1了。所以我们可以这样写:
#include<stdio.h>
void Print(int n)
{
while (n%10!=0)
{
printf("%d ", n % 10);
n = n / 10;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
Print(n);
return 0;
}
我们输入123
,结果会是3 2 1
。
现在是输出了每一位,但是我们现在想要输出它的每一位,而且是从最高位开始输出,也就是:我们输入123,想要输出1 2 3
这里,我们就可以用递归的方式写,简单些。
#include<stdio.h>
int Print(int n)
{
if (n / 10 == 0)
{
printf("%d ", n);
}
else
{
Print(n / 10);
printf("%d ", n % 10);
}
}
int main()
{
int n;
scanf("%d", &n);
Print(n);
return 0;
}
递归其实是⼀种解决问题的方法,在C语⾔中,递归就是函数自己调用自己。
举个简单的例子:
#include<stdio.h>
int main()
{
int n = 10;
printf("%d ", n);
main();
return 0;
}
这里的main()
就是指main
函数又调用了一遍main
函数。
呈现的结果就是:
全是10,当然我这个例子是不合理的(栈溢出了),但是可以简单的了解到递归的含义。
祝你每一天都开心(。・ω・。)ノ♡