您的位置:首页 > 其它

递归练习二

2016-01-17 15:21 302 查看
//factor.c--使用循环和递归计算阶乘

#include <stdio.h>

long fact (int n);

long rfact (int n);

int main (void)

{
int num;

printf ("This program calculation 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 number ,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 factoral = %ld\n",num,rfact(num));
}
printf ("Enter a value in the range 0-12 (q to quit ):\n");
}
printf ("Bye.\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;

 } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: