fibonacci数列前40个数
C语言编程题

1.有一函数:当x<0 时,y=-l:当x=0 时,v=0;当x>0 时,y=l。
编一程序,输入x的值,输出y的值。
2.输入三个实数,将这三个数按由人到小的顺序排列,并输出这三个数。
3.有三个整数a, b, c,由键盘输入,输出其中最大者。
4.编程求圆面积、圆周长。
要求圆半径由键盘输入,输出时要求有文字说明,取小数点后两位数字。
5.有分段函数:当x<-l0 时,y=|x|+5;当-lOWxWlO 时,y=4x-8;当x>10 时,y=sqrt(x)。
编一程序,输入x的值,输出y的值。
6.编写程序,判断某一年是否是闰年。
(闰年的条件是:能被4整除,但是不能被100整除, 或者可以被400整除。
)7.输入一个华氏温度,要求输出摄氏温度,输出时要求有文字说明,取小数点后两位数字。
公式为c=5/9(f-32)8.有一函数:当x<l 时,v=|x|;当l<=x<10 时,y=2x-l;当x>=10 时,y=3x+ll。
编一程序,输入x的值,输出y的值。
9.输入三个实数,将这三个数按由小到大的顺序排列,并输出这三个数。
10.输入一个字符,判断它是否是小写字母,如果是,将它转换成人写字母:如果不是,不转换。
然后输出最后得到的字符。
11•编程求圆柱体积,圆柱表面积。
要求圆半径,圆柱高由键盘输入,输出时要求有文字说明,取小数点后两位数字。
12.有分段函数:当x<-5 时,y=x+10;当・5WxW5 时,y=x A2;当x>5 时,y=2x-10.编一程序,输入x的值,输出y的值。
13.有三个整数a, b, c,由键盘输入,输出其中最小者。
14.输入一个字符,判断它是否是大写字母,如果是,将它转换成小写字母:如果不是,不转换。
然后输出最后得到的字符。
15.输入三角形的三边长,求三角形面积。
求三角形面积的公式为area=sqn(s(s-a)(s-b)(s-c)),其中s=(a+b+c)/216.编程求2!+4!+6!+8!+10!的值,并输出结果。
c语言数组1

① 输入->x ② s+x->s 2、算平均分ave 3、循环30次
数组
1.能保存所有的数据 2.能用循环结构处理数据
① 输入->x
② 如果x>ave 输出x。
定义 有序数据的集合 特点 所有元素类型相同 要素 数组名 下标
第五章
5.1 5.2 5.3 5.4
数组
一维数组 二维数组 字符型数据 数组常用算法举例
4
5 6
5
4 3
7
8 9
2
1 0
算法: for(i=0;i<n/2;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; }
例2 产生n个[0,70]之间的随机整数,并 按逆序重放在数组中。(n<50)
#include "stdlib.h" main( ) { int a[50], t, n, i; scanf("%d", &n); randomize(); for(i=0;i<n;i++) { a[i]=random(71); printf("%5d",a[i]); } printf("\n"); for(i=0;i<=n/2-1;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } for(i=0;i<n;i++) printf("%5d",a[i]); }
21 0
34 0
55 0
.........
f[2]=f[1]+f[0]; f[3]=f[2]+f[1]; f[i]=f[i-1]+f[i-2];
(完整版)计算机二级C语言考试编程题题库

计算机c语言编程题库1、求100之内自然数中最大的能被17整除的数。
void main(){ int i;for(i=100;i>0;i--)if(i%17==0)break;printf("%d\n",i);}2、已知a,b,c都是1位整数,求当三位整数abc、cba的和为1333时a、b、c的值。
void main(){int a,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++)if(a*100+b*10+c+c*100+b*10+a==1333)printf("%d,%d,%d\n",a,b,c);}}}3、计算并输出200-400之间不能被3整除的整数的和。
void main(){ int i,sum=0;for(i=200;i<=400;i++)if(i%3!=0)sum=sum+i;printf("%d\n",sum);}4、从键盘输入10个数,统计非负数的个数,并计算非负数的和。
void main(){ int i,n=0,sum=0;int a[10];printf(“请输入10个数:”);for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)if(a[i]>=0){ sum=sum+a[i];n++;}printf("非负个数是%d,sum=%d\n",n,sum);}5、求100之内自然数中偶数之和。
void main(){ int i,sum=0;for(i=0;i<=100;i++)if(i%2==0)sum=sum+i;printf("sum=%d\n",sum);}6、输入5个数,求和并输出。
要求编写求和的函数。
斐波那契数列二叉树

斐波那契数列二叉树斐波那契数列是一种非常有趣的数列,它的每一项都是前两项的和。
例如,斐波那契数列的前几项是1、1、2、3、5、8、13、21、34、55、89、144……这个数列在数学和计算机科学中都有广泛的应用,其中一个应用就是构建斐波那契数列二叉树。
斐波那契数列二叉树是一种特殊的二叉树,它的每个节点都对应着斐波那契数列中的一个数。
具体来说,根节点对应着第n项斐波那契数,左子树对应着第n-1项斐波那契数,右子树对应着第n-2项斐波那契数。
这样,我们就可以通过斐波那契数列来构建一棵二叉树。
斐波那契数列二叉树的构建过程非常简单,我们可以使用递归的方式来实现。
具体来说,我们可以定义一个函数fibonacciTree(n),它的返回值是一棵斐波那契数列二叉树,其中n表示根节点对应的斐波那契数列的下标。
函数的实现如下:```class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightdef fibonacciTree(n):if n == 0:return TreeNode(0)elif n == 1:return TreeNode(1)else:left = fibonacciTree(n-1)right = fibonacciTree(n-2)return TreeNode(left.val + right.val, left, right)```在这个函数中,我们首先判断n的值,如果n为0或1,则直接返回一个只有根节点的二叉树。
否则,我们递归地构建左子树和右子树,然后将它们的值相加作为根节点的值,最后返回一棵完整的二叉树。
使用上面的代码,我们可以构建出斐波那契数列二叉树的任意一棵子树。
例如,如果我们想构建第5项斐波那契数列对应的子树,可以调用fibonacciTree(5)函数,得到如下的二叉树:```5/ \3 2/ \ / \2 1 1 1```这棵二叉树的根节点对应着第5项斐波那契数,左子树对应着第4项斐波那契数,右子树对应着第3项斐波那契数。
费波那契数列

斐波拉契数列(又译作“斐波那契数列”或“斐波那切数列”)是一个非常美丽、和谐的数列,它的形状可以用排成螺旋状的一系列正方形来说明(如右词条图),起始的正方形(图中用灰色表示)的边长为1,在它左边的那个正方形的边长也是1 ,在这两个正方形的上方再放一个正方形,其边长顺次加上边长为3、5、8、13、21……等等的正方形。
这些数字每一个都等于前面两个数之和,它们正好构成了斐波那契数列。
斐波拉契数列的简介:“斐波那契数列”的发明者,是意大利数学家列昂纳多·斐波那契(Leonardo Fibonacci,生于公元1170年,卒于1240年。
籍贯大概是比萨)。
他被人称作“比萨的列昂纳多”。
1202年,他撰写了《珠算原理》(Liber Abaci)一书。
他是第一个研究了印度和阿拉伯数学理论的欧洲人。
他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。
他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34……这个数列从第三项开始,每一项都等于前两项之和。
它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(√5表示5的算术平方根)(19世纪法国数学家敏聂(Jacques Phillipe Marie Binet 1786-1856) 很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
斐波拉契数列之闻名,可能还跟美国悬疑作家丹·布朗有关,他在他的小说《达芬奇密码》之中巧妙地运用了该数列。
其实,我国现行的高中教材中提及了杨辉三角,斐波拉契数列可在其中寻得。
13世纪初,欧洲最好的数学家是斐波拉契;他写了一本叫做《算盘书》的著作,是当时欧洲最好的数学书。
书中有许多有趣的数学题,其中最有趣的是下面这个题目:“如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月裏,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,1年后能繁殖成多少对兔子?”斐波拉契把推算得到的头几个数摆成一串:1,1,2,3,5,8……这串数里隐含着一个规律:从第3个数起,后面的每个数都是它前面那两个数的和。
斐波那契数列

斐波那契数列百科名片“斐波那契数列”是意大利数学家列昂纳多·斐波那契首先研究的一种递归数列,它的每一项都等于前两项之和。
此数列的前几项为1,1,2,3,5等等。
在生物数学中,许多生物现象都会呈现出斐波那契数列的规律。
斐波那契数列相邻两项的比值趋近于黄金分割数。
此外,斐波那契数也以密码的方式出现在诸如《达芬奇密码》的影视书籍中。
目录[隐藏]【奇妙的属性】【影视链接】【相关的数学问题】【斐波那契数列别名】斐波那契数列公式的推导【C语言程序】【C#语言程序】【Java语言程序】【奇妙的属性】【影视链接】【相关的数学问题】【斐波那契数列别名】斐波那契数列公式的推导【C语言程序】【C#语言程序】【Java语言程序】∙【JavaScript语言程序】∙【Pascal语言程序】∙【PL/SQL程序】∙【数列与矩阵】∙【数列值的另一种求法】∙【数列的前若干项】∙【斐波那契数列的应用】“斐波那契数列(Fibonacci)”的发明者,是意大利数学家列昂纳多·斐波那契(Leo nardo Fibonacci,生于公元1170年,卒于1240年,籍贯大概是比萨)。
他被人称作“比萨的列昂纳多”。
1202年,他撰写了《珠算原理》(Liber Abaci)一书。
他是第一个研究了印度和阿拉伯数学理论的欧洲人。
他的父亲被比萨的一家商业团体聘任为外交领事,派驻地点相当于今日的阿尔及利亚地区,列昂纳多因此得以在一个阿拉伯老师的指导下研究数学。
他还曾在埃及、叙利亚、希腊、西西里和普罗旺斯研究数学。
斐波那契数列通项公式斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。
它的通项公式为:(见图)(又叫“比内公式”,是用无理数表示有理数的一个范例。
)有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
[编辑本段]【奇妙的属性】随着数列项数的增加,前一项与后一项之比越来越逼近黄金分割的数值0.61803 39887……从第二项开始,每个奇数项的平方都比前后两项之积少1,每个偶数项的平方都比前后两项之积多1。
斐 波 那 契 数 列 _ 数 据 结 构 与 算 法

多种方法实现Fibonacci(斐波那契)数列的生成斐波那契(Fibonacci)数列问题,是一个非常经典的问题。
1、What is Fibonacci sequence?斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。
【摘选自百度百科】2、How to create Fibonacci sequence?———————————-华丽丽的分割线———————————-此方法是博主在一次java作业期间想到的,当时作业是一个运用斐波那契数列、黄金分割率做文章的题目。
期间,博主还运用了BigDecimal、BigInteger两个java类来实现任意精度下的斐波那契数列、黄金分割率。
详细java代码见博主GitHub-**代码实现(由于int类型的承载的范围有限,因此我们通过此种方法穷举出int类型范围内的所有斐波那契数列项)**- Three f = new Three(1);while (f.getTwo() 0) {f = new Three(i);System.out.println(f.getOne());System.out.println("现有条件(int)下能够存储的所有斐波那契数列见上");-**Three.java**-public class Three {private int one = 0;private int two = 1;public Three(int i) {for (int j = 1; j i; j++) {forward();public void forward() {this.one = this.two;this.two = this.three;this.three = this.one + this.two;public int getOne() {return this.one;public int getTwo() {return this.two;public int getThree() {return this.three;方法二:(当然是传统的递归调用啦^_^)--由于递归方法的时间消耗比较大,所以这里只递归到40项(再往后程序将会一直卡住,许久才会出结果)for(int i = 1;i = 40;i++){System.out.print(fibonacci(i)+" ");void fibonacci(int n){return 0;return 1;return fibonacci(n) + fibonacci(n-1);方法三:(其他方法^_^)其实大多数方法都是通过改良递法而产生的,我们能够明显的看出递归法时间成本较高的原因是因为没有存储。
c语言教程课后编程题答案

三、编程题1.编写程序,输入一个非负数,输出以此数为半径的圆周长以及面积。
#include "stdio.h"#define PI 3.1415void main(){float r,area,circumference;scanf("%f",&r);area=PI*r*r;circumference=2*r*PI;printf("area=%6.2f\ncircumference=%6.2f\n",area,circumference);}2.编写程序,输出下面结果,注意,双引号也要输出:“I'm a student!”#include <stdio.h>void main(){printf("\"I\'m a student!\"\n");}3.编写程序,输入一个小写字母,将其转换为大写字母输出。
例如输入b,则输出B。
提示:小写字母和对应的大写字母的ASCII码值相差32。
void main(){char ch;ch=getchar();ch-=32;putchar(ch);//printf("%c",ch);}4.编写程序,输入一个华氏温度f,输出其相应的摄氏温度c。
华氏温度和摄氏温度的转换公式为:)32f(95c-=#include <stdio.h>void main(){float f,c;scanf(“%f”,&f);c=5.0*(f-32)/9;printf(“华氏温度%5.2f转换为摄氏温度为:%5.2f\n”,f,c); }第四章三、编程题1.输入一个整数,判断这个整数是奇数还是偶数(提示:整数的奇偶性可以利用取余运算符%判定)。
#include <stdio.h>void main(){int a;scanf("%d",&a);if(a%2)printf("奇数\n");elseprintf("偶数\n");}2.编写程序,输入一个24小时制的时间,转换为12小时制时间后进行输出。