我这一看标准斐波那契,这把我高兴地,直接就写了,然后死在处理数据,竟然是string 读入,而且最重要的是0 的anscil是48,a 是97 竟然记窜了 ,而且只需要滤过就好,而且最重要的一点甚至不需要打标准高精度,这就很爽。。
小
W在计算一个数列
{An},其中
A1=1,A2=2,An+2=An+1+An。尽管他计算非常精准,但很快他就弄混了自己的草稿纸,他找出了一些他计算的结果,但他忘记了这些都是数列中的第几项。
输入描述:
每行包括数列中的一项Ak(k<=100000)。
总行数T<=30。
输出描述:
对于每一项Ak,输出一行包括一个正整数k表示输入中数是数列的第几项。
示例1
输入
2 3 5 8 13
输出
2 3 4 5 6
#include <cstdio> #include <iostream> #include <string> #include <algorithm> #include <cmath> #include <vector> #include <queue> using namespace std; #define INF 0x7f const int N =100001 ; typedef long long ll ; #define f(i,l,r) for(int i=l;i<=r;++i) #define g(i,l,r) for(int i=l;i>=r;--i) ll a [N]; string s ; int main(){ a[1]=1; a[2]=2; f(i,3,N-1) a[i]=a[i-1]+a[i-2]; while(cin>>s){ ll t=0; f(i,0,s.size()-1 ) t=t*10+(s[i]-48); f(i,1,N-1) if(a[i]==t){ cout<<i<<endl; break; } } return 0; }