这个任务其实要完成不是很难,下面是我写的代码
void Print(int n)
{
while (n)
{
printf("%d ", n % 10);
n /= 10;
}
}
int main()
{
int n = 0;
scanf("%d", &n);
Print(n);
return 0;
}
但这不符合题意,因为没有用递归
而且这种打印方式,比如打印12345,他的输出结果会是 5 4 3 2 1
会倒过来,不太符合我们的习惯,所以求助AI我得到以下运用递归的版本
void Print(int n)
{
if (n < 10)
{
printf("%d ", n);
}
else
{
Print(n / 10);
printf("%d ", n % 10);
}
}
int main()
{
int n = 0;
scanf("%d", &n);
Print(n);
return 0;
}
运用递归后这个代码长短变化不大但是却可以使输出的整数按照数位从大到小的顺序打印出来,同时这个递归设置了一定的限制条件,并且每次递归都使得结果朝限制条件不断靠近,所以这个递归的使用是比较恰当的