C 程序使用递归函数反转给定数字
cserver side programmingprogramming
"递归函数" 是在函数主体中再次调用自身的东西。
例如,
函数 fact ( ) 计算整数"N"的阶乘,该整数是从 1 到 N 的所有整数的乘积。
如果 fact ( ) 的参数为 1(或)0,则函数返回 1。否则,它返回 n*fact (n-1),这种情况会一直发生,直到"n"等于 1。
fact (5) =5* fact (4) =5*4*3* fact (3) =5*4*3*2* 事实 (2) =5*4*3*2*1 事实 (1) =5*4*3*2*1 = 120.
示例
以下是使用递归函数反转数字的 C 程序 −
#include<stdio.h> 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<stdio.h> int sum=0,rem; int main(){ int num,revNum; printf("enter number:
"); 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