| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1223 人关注过本帖
标题:初学C语言,好难的不懂,一个菜鸟的问题,求代码请教下
只看楼主 加入收藏
se7en_enter
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-5-11
收藏
得分:0 
#include "stdio.h"
#define N 100
main()
{
int a[N],i;
printf("please put in two numbers\n");
scanf("%d%d",a[0],a[1]);
for(i=0;i<N-2;i++)
{a[i+2]=a[i]+a[i+1];
}
for(i=0;i<N;i++)
{
if(i%2==0)
a[i]=a[i]*(-1);
}
for(i=0;i<N;i++)
{printf("%4d",a[i]);}
return(0);
}
/*这个程序基本可以实现,但从算法上将不是最佳*/

年轻有年轻的冲动,成熟有成熟的魅力。莫让时间冲淡一切,要让一切充实时间
2007-03-09 21:13
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

卧龙的算法其实是DP的演变.从效率上说是最好的.
写成这样更简单一点.以下借用卧龙的程序.

#include <stdio.h>

int main(void)
{
long long a=0,b=1,c=0;
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
c=a+b;
a=b;
b=c;
}
if(n%2) printf("-%ld",c); else printf("%ld",c);
return 0;
}


倚天照海花无数,流水高山心自知。
2007-03-09 21:43
无玩过界
Rank: 1
等 级:新手上路
威 望:2
帖 子:246
专家分:0
注 册:2007-2-20
收藏
得分:0 
#define N 20
int main()
{
long int a=0,b=-1,i;
for(i=1;i<=N;i++)
{
a-=b;
a=a+b;
b=a-b;
a=a-b;
printf("%ld ",b);
}

2007-03-09 23:34
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

#include <stdio.h>
#include <conio.h>
int main(void)
{
long long getData; /*保存从控制台得到的数据*/
long long data[2]={0,-1}; /*保存一项的前两项的数据*/
long long nextData=0; /*存放下个项的数据*/
long long tempData; /*用于交换时的临时空间*/
int i=1; /*指示下一个项的正负*/
clrscr(); /*清屏*/
scanf("%lld",&getData); /*输入数据*/
printf("0 -1 "); /*打印前两项*/
while(1) /*无限循环*/
{
if(data[0]>=0) /*如果开头这项为正数*/
if(data[1]>=0) /*如果第二项为正数*/
{
nextData=i*(data[0]+data[1]);

}
else /*如果第二项为负数*/
{
nextData=i*(data[0]-data[1]);
}
else /*如果开头这项为负数*/
if(data[1]>=0) /*如果第二项为正数*/
{
nextData=i*(-data[0]+data[1]);
}
else /*如果第二项为负数*/
{
nextData=i*(-data[0]-data[1]);
}

/*设置退出循环条件*/
if(nextData>=0)
if(nextData>getData)
break;
else
if((-1*nextData)>getData)
break;

/*data[1] 为下一个数的第一项
nextData 为下一个数的第二项*/
tempData=data[1];
data[1]=nextData;
data[0]=tempData;

printf("%lld ",nextData); /*打印数据*/

/*设置下一个数的正负*/
if(i==1)
i=-1;
else
i=1;
}

getch();
}


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-03-10 01:09
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
#include"stdio.h"
main()
{
long i,j,n=0,k;
scanf("%ld",&k);
for(i=0,j=1;i<k;i++,j=j+n,n=j-n)
{
if(i%2) printf("-%ld,",j);
else printf("%ld,",j);
}
}

羊肉串 葡萄干 哈密瓜!!
2007-03-10 02:55
快速回复:初学C语言,好难的不懂,一个菜鸟的问题,求代码请教下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025919 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved