1. 程式人生 > >C語言:遞迴和非遞迴分別實現求n的階乘

C語言:遞迴和非遞迴分別實現求n的階乘

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include "stdlib.h"
#include<stdio.h>
//遞迴方法實現N的階乘
int fac1(int n)
{
	if (n == 1)
	{
		return 1;
	}
	return n *fac1(n - 1);
}
//非遞迴方法實現N 的階乘
int fac2(int n) 
{
	int sum = 1;
	int i;
	for (i=n;i>0;i--)
	{
		sum *= i;
	}
	return sum;
}

int main()
{
	int n = 0;
	printf("請輸入:");
	scanf("%d", &n);
	int b = 0;
	int a = 0;
	a = fac1(n);
	b = fac2(n);
	printf("遞迴結果:%d\n", a);
	printf("非遞迴:%d\n", b);
	system("pause");
	return 0;
}