zoukankan      html  css  js  c++  java
  • 斐波那契数应用

    • 比赛描写叙述

    知道斐波那契数吗?以下是它的一个定义:
    F1 = 1
    F2 = 2
    Fn+1 = Fn+Fn-1 。这里n>1

    每一个正整数x 可写为不同斐波那契数的总和。因而意味着存在数k 和数 b1, b2, …, bk,使得x=b1*F1+ …+ bi*Fi+ … +bk*Fk, 当中bk = 1,bi (1≤i < k)为0或1。简言之,我们可写为: b(x) = (bk, bk-1, …, b1)。 为使表示唯一,我们要求对全部i > 1,bi * bi-1 = 0。

    利用斐波那契数,我们能够将公里单位距离 x 转换为对应的英里单位距离 y。首先,以斐波那契系统表示b(x)写下x。

    其次。将b(x)中数字右移一位(最后一位删除),得到b(y)。第三,从b(y)中计算总数来算出 y。

    比如,数42以斐波那契系统表示为:(1,0,0,1,0,0,0,0)。第二步,我们通过右移得到 (1,0,0,1,0,0,0)。第三步。我们计算0*1 + 0*2 + 0*3 + 1*5 + 0*8 + 0*13 + 1*21 = 26.

    以下请你写一个程序,依据上述算法将公里转换为英里。

    • 输入

    输入第一行包括t。须要转换的距离数目 (t<25000)。以下t 行的每一个包括一个整数距离x (2 < x < 25000)公里。

    • 输出

    对于每一个距离x 公里,输出算出的y 英里。

    • 例子输入

    5
    42
    100
    180
    300
    360

    • 例子输出

    26
    62
    111
    185
    222

     #include<iostream>
    using namespace std;
    int fa[23]={0,1,2};
    void fab(int n=23)
    {
        int i;
        for(i=3;i<=n;i++)
            fa[i]=fa[i-2]+fa[i-1];
    }
    
    int main()
    {
        int i,n,x,j,sum,visit[23];
        fab();
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            memset(visit,0,sizeof(visit));
            sum=0;
            scanf("%d",&x);
            for(j=21;j>=1;j--)
            {
                if(sum+fa[j]<x)
                {visit[j]=1;sum=sum+fa[j];}
                else
                    if(sum+fa[j]==x)
                    {
                        visit[j]=1;break;
                    }
            }
            x=0;
            for(j=1;j<=21;j++)
                visit[j]=visit[j+1];
            for(j=1;j<=21;j++)
                if(visit[j])
                x=x+fa[j];
            printf("%d
    ",x);
        }
        return 0;
    }
    
  • 相关阅读:
    springboot文件上传: 单个文件上传 和 多个文件上传
    Eclipse:很不错的插件-devStyle,将你的eclipse变成idea风格
    springboot项目搭建:结构和入门程序
    POJ 3169 Layout 差分约束系统
    POJ 3723 Conscription 最小生成树
    POJ 3255 Roadblocks 次短路
    UVA 11367 Full Tank? 最短路
    UVA 10269 Adventure of Super Mario 最短路
    UVA 10603 Fill 最短路
    POJ 2431 Expedition 优先队列
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7160621.html
Copyright © 2011-2022 走看看