递归练习二
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;
}
#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;
}
相关文章推荐
- NodeJS实现阿里大鱼短信通知发送
- 线程池
- Maven基础配置--nexus私服配置
- 线性回归及其Python实现(最大似然法)
- 图像哈希检索背景综述(一)
- Unicode下CString转char*
- coalesce、nvl、nvl2比较
- Java使用HttpURLConnection上传文件
- 【转】hadoop深入研究:(十一)——序列化与Writable实现
- ACM学习之路
- cookie 和session 的区别详解
- 叶子结点
- List的常用方法
- CONNECT BY
- tcpdump丢包问题分析
- CentOs中触摸板配置
- Android 开发笔记(一) 按钮事件调用Activity
- awesome的快捷键
- Java 入门 之 数组与循环
- Linux查看硬件信息