主题:用于产斐波那契数列的前10个数(1,1,2,3,5,8,13,...
cjw20098
[专家分:30] 发布于 2007-04-05 16:54:00
这道题目怎么做,高手快帮帮我啊,急!!!!!!
回复列表 (共24个回复)
沙发
gqhonesty [专家分:2920] 发布于 2007-04-05 17:25:00
自己做吧!
不难!
你写个,我来帮你瞅瞅!
板凳
gqhonesty [专家分:2920] 发布于 2007-04-05 17:35:00
弄个飞递归的!书上好像都是递归的!
void Function(int num,int *des);
void Function(int num,int *des)
{
int last = 1,current = 1;
for (int i = 0; i<num; i++)
{
if (i>1)
{
*(des+i) = *(des+i-1)+*(des+i-2);
}
else
{
*(des+0) = 1;
*(des+1) = 1;
}
}
}
int main(void)
{
int sor[10]= {0};
Function(10,sor);
for (int i = 0; i<10; i++)
{
printf("sor[%d] = %d\n",i,sor[i]);
}
return 0;
}
有不妥的地方,请楼下指正!
3 楼
shily [专家分:90] 发布于 2007-04-05 19:04:00
我也是初学者,不会用指针,所以写了个很菜鸟的:
#include<iostream.h>
#include<stdlib.h>
int main(void)
{
int i=1,j=1,k=1;
while(k<6)
{
k++;
cout<< i<<"\n";
i=j+i;
cout<< j<<"\n";
j=i+j;
}
system ("pause");;
return 0;
}
4 楼
bhdgx [专家分:110] 发布于 2007-04-05 21:13:00
我也是个初学者,试写一个,如下:
#include <stdio.h>
void main()
{
int f1 = 1,f2 = 1,k;
printf("%6d,%6d",f1,f2);
for(k = 0;k < 8;k++)
{
f1 = f1 + f2;
f2 = f2 + f1;
printf("%6d,%6d",f1,f2);
if(k % 4 == 0) printf("\n");
}
}
5 楼
Zero1 [专家分:710] 发布于 2007-04-06 09:31:00
/* 用于产斐波那契数列的前10个数(1,1,2,3,5,8,13,... */
#include<stdio.h>
void generate(int N){
int m=1,n=1;
int mn = m+n;
int k=1;
if(k++ == 1)printf("1,");
if(k++ == 2) printf("2,");
for(;k<=N;k++){
printf("%d,",mn);
m=n;n=mn;mn=m+n;
}
}
int main(int argc,char *argv[]){
int num;
puts("\nhow many fabonacci numbers do you like to generate(1,1,2,3,...):");
scanf("%d",&num);
printf("the first %d fabonacci numbers are:\n",num);
generate(num);
puts("\n");
return 0;
}
6 楼
Zero1 [专家分:710] 发布于 2007-04-06 10:01:00
/*这个好像更简单点,借鉴楼上的几位~~*/
#include<stdio.h>
int main(int argc,char *argv[]){
int f1=1,f2=1,f3;
int num,k;
puts("how many fabonacci numbers do you want to show?");
scanf("%d",&num);
for(k=1;k<=num;k++){
f3=f1+f2;
printf("%5d",f1);
f1=f2;f2=f3;
}
printf("\n");
return 0;
}
7 楼
cjw20098 [专家分:30] 发布于 2007-04-06 21:55:00
前10个数字,你多写了,要控制一下喽
8 楼
Zero1 [专家分:710] 发布于 2007-04-06 23:04:00
[quote]
前10个数字,你多写了,要控制一下喽[/quote]
很无语阿~~~
打个比方,比如你说要吃饭(吃一碗饭),我给你端来了一桶,你说你只要一碗饭~~~ 知道结果我怎么了么?? 结果我无语了~~~ 相当无语~~ 路过~~[em6]
9 楼
cjw20098 [专家分:30] 发布于 2007-04-07 11:24:00
大侠,这题目就这么要求的啊[em7][em7]
10 楼
Zero1 [专家分:710] 发布于 2007-04-07 12:50:00
#include<stdio.h>
int main(int argc,char *argv[]){
int f1=1,f2=1,f3;
int num=10,k;
// puts("how many fabonacci numbers do you want to show?");
// scanf("%d",&num);
// for(k=1;k<=num;k++){
f3=f1+f2;
printf("%5d",f1);
f1=f2;f2=f3;
}
printf("\n");
return 0;
}
感觉掉坑里了~~~
我来回复