c++ 递归1
来源:互联网 发布:淘宝客哪个软件好 编辑:程序博客网 时间:2024/06/09 20:10
// BigRecursiveIdea.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
/*
** 递归
**
*/
//"""头递归"""""
//先递归,后计算
//n=3
//最后一个函数只知道1
//返回给倒数第二个函数,返回2
//第一个函数返回6
//n* factorial(n-1);这种叫做头递归
//函数的本质计算式乘法,每次子递归完成之后才在本函数中计算
int factorial(int n){
if(n==1)return 1;
return n* factorial(n-1);
}
//#1 计算整数数组的和
int getSumOfArray(int a[],int n); //迭代
int getSumOfArrayA(int a[],int n);//迭代版"递归"
int getSumOfArrayR(int a[],int n);//头递归
//#1.1 迭代
int getSumOfArray(int a[],int n){
int sum=0;
for(int i=0;i<n;i++){
sum+=a[i];
}
return sum;
}
//#1.1.5 迭代版"头递归":本次计算等于之后的计算结果与本次计算的结果操作
int getSumOfArrayA(int a[],int n){
int sum=0;
int last=a[n-1];
sum=last+getSumOfArray(a,n-1);
return sum;
}
//1.2头递归
int getSumOfArrayR(int a[],int n){
if(n==0){return 0;}
return a[n-1]+getSumOfArray(a,n-1);
}
int main(int argc, char* argv[])
{
cout<< factorial(3)<<endl;
int a[5]={1,2,3,4,5};
int b= getSumOfArrayA(a,5);
b++;
cout<<"diedai:"<< getSumOfArray(a,5)<<endl;
cout<<"kaka:"<< getSumOfArrayA(a,5)<<endl;
cout<<"reverse:"<< getSumOfArrayR(a,5)<<endl;
return 0;
}
- C 递归
- 【c++】递归
- C 递归
- c语言学习笔记-递归1
- C指针原理(77)-递归(1)
- c语言递归算法--深入浅出(1)
- C语言递归调用1:李白打酒
- 递归实战(1)汉诺塔C语言实现
- c典型算法 递归
- c典型算法 递归
- C#_递归算法
- C语言 阶乘递归
- C 递归排列
- objective-c递归目录
- C语言之递归
- C语言 -- 递归学习
- objective-c目录递归
- C语言递归练习
- URAL 1901 Space Elevators (苦逼水题,2级)
- u-boot nand 驱动
- OpenCV 2 学习笔记(18): 反向投影
- Java NIO系列教程(一) Java NIO 概述
- Flex 4 皮肤功能介绍
- c++ 递归1
- hdu2487(枚举)
- 在MAC下调试运行暗黑世界客户端及部分代码注解(基于Firefly)
- 敏捷测试需注意的五种危险行为
- 字符串复制,求长度,求子串
- RTP 问题汇总
- 启动IIs时,依存服务或组无法启动
- hdu 1671 字典树
- 进程与多进程管理的实现方法