标题:蓝桥杯 39级阶梯 用二维数组做
只看楼主
ypp240124016
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2013-3-7
得分:0 
回复 7楼 守护靖
若n=6,总的有13种,奇数步有6种;而按照这个算出来是7种。
2013-07-22 14:44
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
得分:40 
回复 19楼 小新二代
呵呵,你好像没明白我在说什么。也不较真了。

下面的代码是按原题写的,原题要求的是偶数步。如果你确实想要奇数步的结果,将函数f的返回值改成ta即可。

程序代码:
#include<stdio.h>
int f(int n)
{
    int a1 = 1, a2 = 1, b1 = 0, b2 = 1, ta, tb, i;
    if(n < 2) return 0;
    
    for(ta = a2, tb = b2, i = 3; i <= n; i++)
    {
        ta = b1 + b2;
        tb = a1 + a2;
        a1 = a2;
        a2 = ta;
        b1 = b2;
        b2 = tb;
    }
    return tb;
}

int main()
{
    printf("%d", f(39));
    return 0;
}

重剑无锋,大巧不工
2013-07-23 11:34
y1207435881
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:225
专家分:762
注 册:2013-4-30
得分:0 
回复 22楼 beyondyf
顶啊啊啊
2013-07-24 12:42
唐书豪
Rank: 2
等 级:论坛游民
帖 子:28
专家分:52
注 册:2013-5-10
得分:0 
#include<stdio.h>
int main()
{
    int i,k;
    long  sum1=1,sum2=0;
    for(i=2;i=<19;i+2)
    {
         sum1=1;
        for(k=0;k<=i;k++)
        {
            sum1*=(39-i-k);
            
        }
        sum2+=sum1;
    }
    printf("%ld\n",sum2);
    return 0;
}

是我想错了吗,这么大的数字实在是不好表示出来,可以对数字多少位整除后以字符串存储后,在有序的接起来然后打印,貌似超出最大表示范围了

[ 本帖最后由 唐书豪 于 2013-7-25 23:05 编辑 ]
2013-07-25 22:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-417480-1-1.html




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

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