头文件
#include <stdlib.h> #include <stdio.h> #include <string.h> #pragma once
代码文件
#include "myH.h"
//深度理解递归与迭代方法
//递归与迭代方法的区别:
//递归使用函数和条件语句(if和else语句)
//迭代法使用循环语句(for和while语句)
/************************************************************************
程序目标:一.求和
二.求阶乘
三.分别利用递归和迭代法实现
************************************************************************/
//求和
int fooSum(int n)
{
if (n < 0)
{
return -1;
}
if (n == 1)
{
return n;
}
else
return n +fooSum(n-1);
}
int fooSum02(int n)
{
int i = 0;
int sum = 0;
if (n < 0)
{
return -1;
}
for (i=1;i<=n;i++)
{
sum += i;
}
return sum;
}
int main01()
{
int ret = 0;
int n = 0;
int sum = 0;
printf("测试阶乘:");
scanf("%d",&n);
sum = fooSum(n);
sum = fooSum02(n);
if (sum == -1)
{
printf("error:%d",sum);
return ret = sum;
}
printf("输出的结果是:%d",sum);
system("pause");
return ret;
}
//求阶乘
int fooMul(int n)
{
if (n < 1)
{
return -1;
}
if (n == 1)
{
return n;
}
else
{
return n*fooMul(n-1);
}
}
int fooMul02(int n)
{
int i = 0;
int sum = 1;
if (n < 1)
{
return -1;
}
for (i = 1;i <= n;i++)
{
sum *=i;
}
return sum ;
}
int main()
{
int ret = 0;
int sum = 0;
int n = 0;
printf("测试用例:");
scanf("%d",&n);
sum = fooMul(n);
sum = fooMul02(n);
if (sum == -1)
{
printf("error:%d",sum);
return ret = sum;
}
printf("结果是:%d",sum);
system("pause");
return ret;
}本文出自 “CPCPP的博客” 博客,请务必保留此出处http://tytsa.blog.51cto.com/9564213/1571894
原文地址:http://tytsa.blog.51cto.com/9564213/1571894