Big String

 

                                    

n

0

1

2

3

4

 

fib数列

7

10

17

27

44

n

n=4

n=8

n=14

n=21

n=42

n=55

n=60

-fib

/

0

1

2

3

1

4

1

4

1

n

 

1

4

4

5

1

6

 

完整程序:

#include<iostream>
#include<algorithm>
#include <stdio.h>
using namespace std;
#define LEN 88
string base="T.T^__^";
int main()
{
  //将斐波那契数列(Fibonacci)在2^63-1范围内的数全部计算出来
long long int f[LEN];
f[0]=7;
f[1]=10;
for(int i=2;i<LEN;i++)
    f[i]=f[i-1]+f[i-2];
long long int n;
while(cin>>n){
    //对于每一个n,减去小于n的最大斐波那契数
    while(n>7){
        int i=0;
        while(i<LEN&&f[i]<n)
            i++;
        n-=f[i-1];
    }
    //n中剩下的值,就是该字符在base中的位置
    cout<<base[n-1]<<endl;
}
}
发布了266 篇原创文章 · 获赞 215 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/kt1776133839/article/details/104338184
今日推荐