| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:两个程序解决的问题是一样的。第一个用了函数,第二个没用。可是第二个比第 ...
只看楼主 加入收藏
幻灭云风
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2015-12-7
结帖率:0
收藏
已结贴  问题点数:10 回复次数:2 
两个程序解决的问题是一样的。第一个用了函数,第二个没用。可是第二个比第一个慢了好几倍。
程序一:

#include<stdio.h>
void main()
{
    int M,N,t,i;
    int a[40];
    a[0]=1;
    a[1]=1;
    for(i=2;i<40;i++)
    a[i]=a[i-1]+a[i-2];
    while(scanf("%d",&M)>0)
    {
        for(i=1;i<=M;i++)
        {
            scanf("%d",&t);
            printf("%d\n",a[t-1]);
        }
    }
}




程序二:


#include<stdio.h>
int fun(int x)
{
    if(x==1)
    return 1;
    if(x==2)
    return 1;
    if(x==3)
    return 2;
    x=fun(x-1)+fun(x-2);
    return;
}
void main()
{
    int N,i,M;
    while(scanf("%d",&N)>0)
    {

        for(i=1;i<=N;i++)
        {
            scanf("%d",&M);
            printf("%d\n",fun(M));
        }
    }
}


为什么第一个程序比第二个快了好几倍?
2015-12-07 14:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
kao,说到腻烦了。

授人以渔,不授人以鱼。
2015-12-07 14:58
漂浮的显卡
Rank: 1
等 级:新手上路
帖 子:20
专家分:9
注 册:2015-12-5
收藏
得分:5 
回复 楼主 幻灭云风
说反了吧,第一个没用吧,函数的话效率高
2015-12-10 18:29
快速回复:两个程序解决的问题是一样的。第一个用了函数,第二个没用。可是第二个 ...
数据加载中...
 
   



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

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