好的,问题如下。我需要输入一个数字,程序需要打印该数字中小于<5的数字。数字的打印应使用递归函数。示例:“对于数字8238871,应打印4231:4”。这是我没有递归的解决方案,有人可以帮我提供递归解决方案吗..
int main()
{
int n, pom, digit=0, a;
printf("Enter a number: ");
scanf("%d", &n);
pom=n;
while(pom > 0)
{
a = pom % 10;
if(a < 5)
digit++;
pom=pom/10;
}
printf("%d : %d\n", n, digit);
return 0;
}
#include <stdio.h>
int func_r(int n, int counter){
int q = n / 10;
int r = n % 10;
if(n == 0) return counter;
if(r < 5){
counter = func_r(q, counter + 1);
printf("%d", r);
} else {
counter = func_r(q, counter);
}
return counter;
}
int main(){
int n, digit;
printf("Enter a number: ");
scanf("%d", &n);
digit = func_r(n, 0);
printf(" : %d\n", digit);
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句