递归练习之 a 到 b 的整数和 (c/c++)

/*********************************************************************************
 Copyright (C), 1988-1999, drvivermonkey. Co., Ltd.
 File name:
 Author: Driver Monkey
 Version:
 Mail:[email protected]  qq:196568501
 Date: 2014.04.02
 Description:   递归练习之 a 到 b 的整数和
 *********************************************************************************/  

#include <iostream>
#include <sstream>
#include <fstream>
#include <iostream>
#include <iomanip>
#include <string>
#include <memory.h>
#include <thread>
#include <stdlib.h>     /* labs */
#include <math.h>

using namespace std;

static int  fuction(int a, int b);

int main()
{
    cout<<"fuction = " <<fuction(1,4)<<endl;
    return 0;
}

static int  fuction(int a, int b)
{
	if(a > b)
	{
		return 0;
	}
	return (a + fuction(a + 1, b));
}

时间: 2024-10-12 08:35:04

递归练习之 a 到 b 的整数和 (c/c++)的相关文章

递归之整数划分问题

一.问题描述 将正整数n表示成一系列正整数之和:n=n1+n2+...+nk;(其中n1>=n2>=...>=nk)如6:共有11种6=6:6=5+1:6=4+2: 6=4+1+1:6=3+3: 6=3+2+1: 6=3+1+1+1:6=2+2+2: 6=2+2+1+1: 6=2+1+1+1+1:6=1+1+1+1+1+1: 如5:共有7种 5=5: 5=4+1: 5=3+2:         5=3+1+1: 5=2+2+1:     5=2+1+1+1: 5=1+1+1+1+1: 二

九度OJ—题目1205:N阶楼梯上楼问题 (非递归)

题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 来源: 2008年华中科技大学计算机保研机试真题 答疑: 解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7928-1-1.html 基本思路: 走到第n阶时可能是从第n-1阶走一步到的,也可能

04-07递归解法问题

递归解法问题 从键盘输入一个整数(1~20) 则以该数字为矩阵的大小,把1,2,3-n*n 的数字按照顺时针螺旋的形式填入其中.例如: 输入数字2,则程序输出: 1 2 4 3 输入数字3,则程序输出: 1 2 3 8 9 4 7 6 5 输入数字4, 则程序输出: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 请使用递归解法解决该问题 04-07递归解法问题

2的整数次幂 面试算法(一)

import java.util.Scanner; public class Pow { public static void main(String []args) throws Exception { Scanner s = new Scanner(System.in); int i = s.nextInt(); System.out.println(test(i)); } /** * 面试算法题目 * 描述 * 请使用递归的方式判断一个给定的整数是否为2的整数次幂. * 提示:当一个数 n

使用JAVA直观感受快速排序与冒泡排序的性能差异

初学算法,肯定会编写排序算法 其中两个最为有名的就是冒泡排序和快速排序 理论上冒泡排序的时间复杂度为O(N^2),快速排序的时间复杂度为O(NlogN) 下面本门使用JAVA,分别编写三段排序程序 对十万个0-9999的整数进行一次冒泡排序 对十万个0-9999的整数进行1000次快速排序,使用递归完成 对十万个0-9999的整数进行1000次快速排序,使用堆栈完成 对十万个0-9999的整数进行一次冒泡排序: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

算法笔试

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

算法1

1.把二元查找树转变成排序的双向链表 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调整指针的指向.   10  / \  6  14 / \ / \4  8 12 16 转换成双向链表4=6=8=10=12=14=16.  首先我们定义的二元查找树 节点的数据结构如下: struct BSTreeNode{  int m_nValue; // value of node  BSTreeNode *m_pLeft; // left child of

九度 题目1205:N阶楼梯上楼问题

题目描述: N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.(要求采用非递归) 输入: 输入包括一个整数N,(1<=N<90). 输出: 可能有多组测试数据,对于每组数据, 输出当楼梯阶数是N时的上楼方式个数. 样例输入: 4 样例输出: 5 分析:第n阶台阶的方法等于上到第n-1阶台阶的方法加上第n-2阶的台阶的方法之和,因为89阶的时候已经超过2的32次方,所以用long long int 代码如下: #include <stdio.h> long long int

结构体的sizeof

首先有几条规则: 1. 结构体的成员相对于结构体的偏移量,是该成员所包含的最大简单类型(指占用内存数)的整数倍(如果该成员本身又是一个结构体,就要递归查找其简单类型,简单类型就是char short int float double,long) 比如struct a1{ char a[5]; int b; }aa; struct a2{ double a; char b; a1 c; char d; }bb; 此例中,aa.b相对于aa的偏移值是int的整数倍,所以aa.b的偏移值是8,aa.a