2019-09-19


//使用循环和递归计算阶层。

#include

long fact(int n);          //循环法

long rfact(int n);         //递归法

int main()

{

int num;

printf("this program calculates factorials.\n");          //这个程序计算阶层

printf("enter a value in the range 0-12 (q to quit):\n");

while (scanf("%d", &num) == 1)

{

if (num < 0)

printf("no negative numbers,please.\n");

else if (num > 12)

printf("keep input under 13.\n");

else

{

printf("loop:%d factorial=%ld\n", num, fact(num));                 //循环法输出结果显示

printf("recursion:%d factorial=%ld\n", num, rfact(num));       //递归法输出结果显示

}

printf("enter a value in the range 0-12 (q to quit):\n");

}

printf("Over.\n");

return 0;

}

long fact(int n)                          //循环法 函数

{

long ans;

for (ans = 1;n > 1;n--)

ans *= n;

return ans;

}

long rfact(int n)                          //递归法 函数

{

long ans;

if (n > 0)

ans = n * rfact(n - 1);

else

ans = 1;

return ans;

}




你可能感兴趣的:(2019-09-19)