来简单地数个数(斐波那契额数列)
2017-06-11 15:12
204 查看
题目描述
这是一个斐波那契数列:
f1 = 1
f2 = 2
fn = fn-1 + fn-2 (n>=3)
蔡老板想知道,给你两个数a、b,你能否求出在区间[a,b]里有多少个斐波那契数。
输入
多组数据输入。一行为一组输入数据,包括两个非负整数a、b(a <= b <= 10^100),当a=b=0时输入终止。
输出
对每组输入,输出单独一行,包含一个整数表示区间[a,b]里的斐波那契数个数。
样例输入
10 100
1234567890 9876543210
0 0
样例输出
5
4
提示
[提交][状态][讨论版]
这是一个斐波那契数列:
f1 = 1
f2 = 2
fn = fn-1 + fn-2 (n>=3)
蔡老板想知道,给你两个数a、b,你能否求出在区间[a,b]里有多少个斐波那契数。
输入
多组数据输入。一行为一组输入数据,包括两个非负整数a、b(a <= b <= 10^100),当a=b=0时输入终止。
输出
对每组输入,输出单独一行,包含一个整数表示区间[a,b]里的斐波那契数个数。
样例输入
10 100
1234567890 9876543210
0 0
样例输出
5
4
提示
[提交][状态][讨论版]
注意数据量很大哦!!!十的一百次方呢。。。。
#include<bits/stdc++.h> const int n = 500; using namespace std; int a[111]= {0}; int b[111]= {0}; int c[111]= {0}; int d[111]; char s [111]; void js() { memset(b,0,sizeof(b)); memset(a,0,sizeof(a)); memset(c,0,sizeof(c)); memset(d,0,sizeof(d)); int len = 0; a[1] = 1; b[1] = 2; for(int k=1; k<=n; k++) { if(k<=2) { if(k==1) c[1] = 1; else if(k==2) c[1] = 2 ; } else { for(int i = 1;i<=110;i++) { d[i] = b[i]; b[i] += a[i]; } for(int i = 1;i<=110;i++) { if(b[i]>=10) { b[i]-=10; b[i+1]++; } c[i] = b[i]; a[i] = d[i]; } } int i=110; int l = 0; while(c[i]==0) i--; for(i=i; i>=1; i--) { s[len][l++] = c[i] + '0'; } s[len][l] = '\0'; len++; } } int main() { js(); char x[101],y[101]; while(~scanf("%s %s",x,y)) { if(strcmp(x,"0")==0&&strcmp(y,"0")==0) break; getchar(); int sum = 0; for(int i = 0; i<n; i++) { int len = strlen(s[i]); //cout<<s[i]<<endl; //printf("%d\n",len); int len1 = strlen(x); int len2 = strlen(y); if(len>len1&&len<len2) { sum++; //cout<<s[i]<<endl; } else if(len==len1&&strcmp(s[i],x)>=0&&((strcmp(s[i],y)<=0&&len==len2)||len<len2)) { sum++; //cout<<s[i]<<endl; } else if(len==len2&&strcmp(s[i],y)<=0&&(strcmp(s[i],x)>=0&&len==len1||len>len1)) { sum++; //cout<<s[i]<<endl; } } cout<<sum<<endl; } return 0; }
相关文章推荐
- 计蒜客之简单斐波那契数列
- 斐波那契数列的四种简单实现方式
- 用简单的Java代码实现斐波那契数列
- 问题 : 来简单地数个数(大数模拟计算斐波那契数+区间数数)
- 斐波那契数列的实现(简单递归和动态规划)
- Python 简单斐波那契数列
- 斐波那契数列和
- 滚动数组实现斐波那契数列...
- 汇编实现斐波那契数列
- 斐波那契数列----C 语言学习
- 斐波那契数列
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列与IE9
- POJ 2590 Steps(简单数列递推)
- 读书笔记之编程之美 - 2.9 斐波那契(Fibonacci)数列
- 斐波那契数列
- 斐波那契数列递归与非递归算法
- 斐波那契(Fibonacci)数列
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列