小铭的数学之旅2。
已知m、n为整数,且满足下列两个条件: ① m、n∈1,2,…,K ② (n^ 2-mn-m^2)^2=1 编一程序,对给定K,求一组满足上述两个条件的m、n,并且使m^2+n^2的值最大。例如,若K=1995,则m=987,n=1597,则m、n满足条件,且可使m^2+n^2的值最大。
输入仅一行,K的值。
输出仅一行,m^2+n^2的值。
1995
3524578
每个测试点1秒。
Source: 汕头市FXOI组 Phoeagon ThanX2 Sivon For TripleY
1 #include<iostream>
2 using namespace std;
3 long long int a[10001];
4 int i=3;
5 int main()
6 {
7 a[1]=1;
8 a[2]=1;
9 int k;
10 cin>>k;
11 while(a[i-1]<k)
12 {
13 a[i]=a[i-1]+a[i-2];
14 i++;
15 }
16 if(k<=3)
17 cout<<a[i-2]*a[i-2]+a[i-1]*a[i-1];
18 else
19 cout<<a[i-2]*a[i-2]+a[i-3]*a[i-3];
20 return 0;
21 }
斐波那契数!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!