打印一个数的每一位
举个例子:我们现在要求打印出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,当然我这个例子是不合理的(栈溢出了),但是可以简单的了解到递归的含义。
祝你每一天都开心(。・ω・。)ノ♡