1 条题解
-
0
C :
#include <stdio.h> int fib(int x); int main(void) { int sum,m,n,i,x; scanf("%d%d",&m,&n); for (i=1;;i++) { x=fib(i); if(x>=m&&x<=n) sum+=x; else if(x>n) break; } printf ("%d",sum); return 0; } int fib(int x) { int a[3],i,j,sum; a[0]=1,a[1]=1,a[2]=2; if (x==1) return 1; if (x==2) return 1; if (x==3) return 2; for (i=4;i<=x;i++) { a[0]=a[1]; a[1]=a[2]; a[2]=a[0]+a[1]; } return a[2]; }
C++ :
#include<iostream> using namespace std; int fib(int n) //递归 { if (n==1 || n==2) return 1; int f1=1,f2=1,f; for (int i=3; i<=n; i++) { f=f1; f1=f2; f2+=f; } return f2; } int main() { int m,n,i=1,t,sum=0; cin>>m>>n; do { t=fib(i++); if (t>=m && t<=n) sum+=t; } while (t<n); cout<<sum<<endl; return 0; }
- 1
信息
- ID
- 1479
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者