ZOJ 1633

迭代

每个数对应前面的一个数

#include<stdio.h>
#include<iostream>
using namespace std;
#define max 88
long long s[max], n,p;
char *first="T.T^__^";
void Init()
{
    s[0]=7;
    s[1]=10;
    int i;
    for(i=2; i <= max; i++)
        s[i]=s[i-1]+s[i-2];
}
int getp()
{
    int i=0;
    while(n>s[i])
        i++;
    return i-1;
}
int main()
{
    Init();
    while(scanf("%lld",&n)!=EOF)
    {
        while(n>7)
        {
            p=getp();
            n-=s[p];
        }
        cout<<first[n-1]<<endl;
    }
    return 0;
}
View Code
原文地址:https://www.cnblogs.com/icodefive/p/4044183.html