| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 47429 人关注过本帖
标题:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之 ...
只看楼主 加入收藏
远方的海
Rank: 1
等 级:新手上路
帖 子:18
专家分:6
注 册:2011-11-11
结帖率:83.33%
收藏
已结贴  问题点数:2 回复次数:15 
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.怎么做啊?求大虾帮忙啊!
有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和.怎么做啊?求大虾帮忙啊!
2012-01-07 15:50
huale6
Rank: 2
等 级:论坛游民
帖 子:23
专家分:34
注 册:2011-11-15
收藏
得分:0 
规律是后面分数的分子等于前面分数的分子加分母,后面分数的分母等于前面分数的分子,其他的自己可以搞定了
2012-01-07 17:24
旭日孤帆
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:46
专家分:180
注 册:2012-1-3
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    float a,b,c,d;
    int i;
    a=2.0;
    b=1.0;
    c=a/b;
    for(i=2;i<=20;i++)
    {b=a;
    a=a+b;
    d=(a+b)/a;
    c=c+d;
    }
    printf("%.1f    ",c);
}
2012-01-07 20:16
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
程序代码:
float md(int m, int d)
{
    if (m == 2 && d == 1) return 2;
    else return (((float)m/(float)d) + md(d, m - d));
}

技术问题,请不要以短消息方式提问
2012-01-07 20:52
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
程序代码:
#include<stdio.h>
#include<math.h>
#define sqrt_5    2.2360679774997896964091736687313
#define A    ((1 + sqrt_5) / 2)
#define B    ((1 - sqrt_5) / 2)
#define C    (B / A)
double f(int n)
{
    double a, p;
    p = pow(C, n + 1);
    a = (A - B * p) / (1 - p);
    return a;
}
int main()
{
    int i;
    double a;
    for(a = 0, i = 1; i <= 20; a += f(i++));
    printf("%f\n", a);
    return 0;
}

重剑无锋,大巧不工
2012-01-07 22:12
远方的海
Rank: 1
等 级:新手上路
帖 子:18
专家分:6
注 册:2011-11-11
收藏
得分:0 
回复 3楼 旭日孤帆
三楼的,你写的那个代码貌似不对吧!
2012-01-08 14:20
我爱胡萝卜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:36
注 册:2011-10-3
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    float a,b,c,d;
    int i;
    a=2.0;
    b=1.0;
    c=a/b;
    for(i=2;i<=20;i++)
    {
        a=a+b;
        b=a-b;
        c=c+a/b;
    }
    printf("%.1f    ",c);
}
我把三楼的改了一下。。应该是对的。。结果是32.7
2012-01-08 14:55
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:0 
程序代码:
#include <assert.h>
#include <stdio.h>

typedef enum {
    M_DATA,
    D_DATA
} TYPE_E;

int get_data(int n, TYPE_E type)
{
    int op1, op2;
    int i;

    assert(n > 0);
   
    if (n == 1) return ((type == M_DATA) ? 2 : 1);
   
    for (i = 1, op1 = 1, op2 = 2; i < n; i++) {
        op1 = op2 | ((op1 + op2)<<16);
        op2 = (op1>>16) & 0xffff;
        op1 &= 0xffff;
    }
    return ((type == M_DATA) ? op2 : op1);
}

float md(int m, int d)
{
    assert(m > d);
    if (m == 2 && d == 1) return (float)2;
    else return (((float)m/(float)d) + md(d, m - d));
}

int main(int argc, char *argv[])
{
    printf("result = %f\n", md(get_data(20, M_DATA), get_data(20, D_DATA)));
    return 0;
}
应该写的挺干净的

技术问题,请不要以短消息方式提问
2012-01-08 17:47
霸气护体
Rank: 1
来 自:浙江
等 级:新手上路
帖 子:5
专家分:2
注 册:2012-1-8
收藏
得分:0 
7楼的那变量D没用干嘛要设?本鸟刚学

编辑器各种各样,哪个才是最后一统江湖的啊
2012-01-08 19:50
我爱胡萝卜
Rank: 2
等 级:论坛游民
帖 子:20
专家分:36
注 册:2011-10-3
收藏
得分:0 
我照抄三楼的。。改了一点点。。忘了删了。。。
2012-01-08 22:00
快速回复:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前2 ...
数据加载中...
 
   



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

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