递归和非递归分别实现求n的阶乘

程序:
C语言程序:

//非递归求法
int Fac1(int n)
{
 int i,ret=1;
 for (i = 1; i <= n; i++)
 {
  ret =ret*i;
 }
 return ret;
}
//递归求法
int Fac(int n)
{
 if (n== 1)
 {
  return 1;
 }
 else
 {
  return n*Fac(n - 1);
 }
}


int main()
{
 printf("%d\n", Fac1(5));
 return 0;
}

Java程序

public class Text {    
//4.2 实现代码: 递归求 N 的阶乘      
	public static void main(String[] args) {        
		int ret = factor(5);    //递归    
		int ret1 = factor1(5);    //非递归    
		System.out.println("ret = " + ret);        
		System.out.println("ret1 = " + ret1);    
	}
	//递归求阶乘方法
	public static int factor(int num) {        
		if (num == 1) {           
 			return 1;        
 		}        
 			return num * factor(num - 1);    
 	}   
  //非递归求阶乘    
 	public static int factor1(int num) {        
 		int temp = 1;
		for(int i = 1; i <= num; i++) {             
			temp *= i;        
		 }        
	 return temp;    
	 }
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值