C程序使用递归函数将给定数字取反
“递归函数”是在函数主体中再次调用自己的东西。
例如,
函数事实(),用于计算整数“N”的阶乘,该整数是从1到N的所有整数的乘积。
事实()的参数为1(或)0,该函数返回1。否则,它返回n*fact(n-1),直到“n”等于1为止。
Fact (5) = 5* fact (4) = 5*4*3* fact (3) = 5*4*3*2* fact (2) = 5*4*3*2*1 fact (1) = 5*4*3*2*1 = 120.
示例
以下是使用递归函数反转数字的C程序-
#include输出结果main ( ){ int n,f; int fact (int); clrscr ( ); printf (“enter a number”); scanf (“%d”, &n); f = fact (n); printf (factorial value = %d”,f); } int fact (int n){ int f; if ( ( n==1) || (n==0)) return 1; else f = n*fact (n-1); return f; }
输出如下-
Enter a number 5 Factorial value = 120
下面给出的是另一个C程序,使用递归函数来反转给定的数字-
示例
#include输出结果int sum = 0,rem; int main(){ int num,revNum; printf("enter number:\n"); scanf("%d",&num); revNum = revNumFunction(num);//调用函数以反转给定的数字 printf("the number after reverse :%d",revNum); return 0; } revNumFunction(int num){ if(num){ rem = num%10; sum = sum*10 + rem; revNum(num/10); } else return sum; }
输出如下-
enter number: 1357 the number after reverse is :7531