首页 > 代码库 > 递归与迭代

递归与迭代

头文件

#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

递归与迭代