C++递归复习

骨牌铺路
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	cin>>n;
	cout<<f(n);
	return 0;
}
int f(int n){
	if(n==1) return 1;
	if(n==2) return 2;
	if(n==3) return 4;
	return f(n-1)+f(n-2)+f(n-3);
}
统计每个月兔子的总数
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	cin>>n;
	cout<<f(n);
	return 0;
}
int f(int n){
	if(n==1) return 1;
	if(n==2) return 1;
	return f(n-1)+f(n-2);
}

求s的值

#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	n=0;
	cout<<f(n);
	return 0;
}
int f(int n){
	if(n>=5000) return n;
	sum++;
	n=n+sum;
	return f(n);
}
求多项式的值
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int),f1(int);
int main()
{
	cin>>n;
	double s=0;
	for(int i=1;i<=n;i++){
		s=s+1.0*f(i)/f1(i);
	}
	cout<<fixed<<setprecision(3)<<s;
	return 0;
}
int f(int n){
	if(n==1||n==2) return 1;
	return f(n-1)+f(n-2);
}
int f1(int n){
	if(n==1) return 1;
	if(n==2) return 2;
	return f1(n-1)+f1(n-2);
}

数列求和
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	cin>>n;
	cout<<f(n);
	return 0;
}
int f(int n){
	if(n==1) return 1;
	sum++;
	n=n+sum;
	m=m+n;
	return f(n);
	
}
爬楼梯
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int i;
int f(int);
int main()
{
	int a[1000];
	for(i=0;a[i]!=0;i++){
		cin>>a[i];
	}
	for(i=0;a[i]!=0;i++){
		cout<<f(a[1000]);
	}
	return 0;
}
int f(int a[1000]){
	if(a[i]==1) return 1;
	if(a[i]==2) return 1;
	return f(n-1)+f(n-2);
	
}

PELL数列
#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	cin>>n;
	int a[1000];
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		cout<<f(a[i])<<endl;
	}
	return 0;
}
int f(int n){
	if(n==1) return 1;
	if(n==2) return 2;
	return (2*n-1+n-2)%32767;
	
}

斐波那契数列

#include<bits/stdc++.h>
using namespace std;
int n,m,sum=0;
int f(int);
int main()
{
	cin>>n;
	int a[1000];
	for(int i=0;i<n;i++){
		cin>>a[i];
	}
	for(int i=0;i<n;i++){
		cout<<f(a[i]);
	}
	return 0;
}
int f(int n){
	if(n==1) return 1;
	if(n==2) return 1;
	return f(n-1)+f(n-2);
	
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
压缩成三部分,这是第一部分,请下全。 《C++入门经典(第9版)》共18章,8个附录。在讲解C++基础知识之后,直接引导学生深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、归、模板、指针和链表、派生类、异常以及标准模板库。 名人推荐 “我的学生和我非常喜欢这本教材,Savitch教授功力深厚,善于将这些枯燥的知识变得浅显易懂,而且他的行文诙谐有趣,我们师生都喜欢这样的方式。学生们告诉我,他们终于买到了一本真正物有所值的大学教材。” ——Jennifer Perkins,阿肯色州立大学小石城分校 “Savitch的这本教材在我校已经使用多年,它赢得了我们师生的一致认同。Watter Savitch用清晰、简练的风格解释了难懂的编程概念,讨论了C++语言的所有重要特色。” ——Carol Roberts,缅因州大学 “如果说写作是一种艺术的话,它便能催生出一个艺术家。Savitch的书就是这样的艺术。它以流畅、一致且轻松愉快的方式将C++编程知识娓娓道来。” ——Coskun Bayrak,阿肯色州立大学小石城分校 “从编程基础到面向对象概念,这样的安排符合逻辑,而且高效,能让刚涉足C++编程的学生理解类和一些更高级的主题。” ——stephen Weissman,伯灵顿社区大学 “本书内容全面,涵盖C++语言的主要语法和算法的基础知识。它尤其针对入门读者,重点介绍C++语言的基本语法和编程思想,对基础部分的讲解浅显易懂,细致入微。其章节结构的安排,也为教师调整授课顺序提供了很大的灵活性,便于教师根据学生情况对内容进行裁减和重组。书中适时穿插自测题,有利于读者及时加以复习和巩固。作为一本翻译教材,这本书的中文表述很流畅,翻译质量不错,可以看出译者在程序设计方面的造诣。总的说来,这是一本适合初学者的好书,尤其适合没有教师指导的自学读者。但由于其顺序灵活可调,也非常适合教学使用。” ——郑莉教授,清华大学计算机系 作者简介 作者:(美国)萨维奇(Walter Savitch) 译者:周靖
压缩成三部分,这是第三部分。 《C++入门经典(第9版)》共18章,8个附录。在讲解C++基础知识之后,直接引导学生深入函数、I/O流、类、控制流程、命名空间、数组、字符串、指针和动态数组、归、模板、指针和链表、派生类、异常以及标准模板库。 名人推荐 “我的学生和我非常喜欢这本教材,Savitch教授功力深厚,善于将这些枯燥的知识变得浅显易懂,而且他的行文诙谐有趣,我们师生都喜欢这样的方式。学生们告诉我,他们终于买到了一本真正物有所值的大学教材。” ——Jennifer Perkins,阿肯色州立大学小石城分校 “Savitch的这本教材在我校已经使用多年,它赢得了我们师生的一致认同。Watter Savitch用清晰、简练的风格解释了难懂的编程概念,讨论了C++语言的所有重要特色。” ——Carol Roberts,缅因州大学 “如果说写作是一种艺术的话,它便能催生出一个艺术家。Savitch的书就是这样的艺术。它以流畅、一致且轻松愉快的方式将C++编程知识娓娓道来。” ——Coskun Bayrak,阿肯色州立大学小石城分校 “从编程基础到面向对象概念,这样的安排符合逻辑,而且高效,能让刚涉足C++编程的学生理解类和一些更高级的主题。” ——stephen Weissman,伯灵顿社区大学 “本书内容全面,涵盖C++语言的主要语法和算法的基础知识。它尤其针对入门读者,重点介绍C++语言的基本语法和编程思想,对基础部分的讲解浅显易懂,细致入微。其章节结构的安排,也为教师调整授课顺序提供了很大的灵活性,便于教师根据学生情况对内容进行裁减和重组。书中适时穿插自测题,有利于读者及时加以复习和巩固。作为一本翻译教材,这本书的中文表述很流畅,翻译质量不错,可以看出译者在程序设计方面的造诣。总的说来,这是一本适合初学者的好书,尤其适合没有教师指导的自学读者。但由于其顺序灵活可调,也非常适合教学使用。” ——郑莉教授,清华大学计算机系 作者简介 作者:(美国)萨维奇(Walter Savitch) 译者:周靖

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值