1 solutions
-
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
Information
- ID
- 19665
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- (None)
- # Submissions
- 0
- Accepted
- 0
- Uploaded By