10 条题解
-
1
空间换时间,提前导出一个斐波那契数列数组就好。
#include <cstdio> int Fibo[31] = {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025, 121393, 196418, 317811, 514229, 832040, 1346269}; //数据范围在1000000以内,故导出这个范围内的斐波那契数列数组,多导出一位防止index溢出。 int main(){ int a, b, ans = 0; scanf("%d %d", &a, &b); for(int i = 0; i <= 30; i++){ if((a <= Fibo[i])&&(Fibo[i] <= b)){ ans++; } } printf("%d", ans); }
-
0
#include<iostream> using namespace std; int cun[1000]; int cnt; void feibo() { cun[1]=1,cun[2]=1; for(int i=3;i<1000;i++){ cun[i]=cun[i-1]+cun[i-2]; } }
int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int a,b; cin >> a >> b ; feibo(); for(int i=1;i<1000;i++){ if(cun[i]>b) break; if(cun[i]>=a && cun[i]<=b) cnt++; } cout << cnt; return 0; }
-
0
#include<stdio.h> int fibonacci(int n){ if(n==1||n==2){ return 1; } else{ return fibonacci(n-1)+fibonacci(n-2); } } int fibonacciss(int a, int b) { int n = 1; int count = 0; while (1) { int f = fibonacci(n); if (f > b) { break; } if (a <= f && f <= b) { count++; } n++; } return count; } int main(){ int a,b; scanf("%d %d",&a,&b); int result=fibonacciss(a,b); printf("%d",result); }
- 1
信息
- ID
- 48
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 3392
- 已通过
- 842
- 上传者