题目描述
已知m、n为整数,且满足下列两个条件:
①m、n∈{1,2,…,k},即1 ≤ m,n ≤ k
②(n2-m*n-m2 )2 =1
你的任务是:编程输入正整数k(1 ≤ k ≤ 10^9),求一组满足上述两个条件的m、n,并且使m2 +n2的值最大。例如,从键盘输入k=1995,则输出:m=987 n=1597。
输入格式
正整数k(1 ≤ k ≤ 10^9)。
输出格式
满足条件的 m 和 n 的值。
输入样例
1995
输出样例
987 1597
#include <bits/stdc++.h>
using namespace std;
int main(){
int n = 1;
int m = 1;
int k, t;
cin >> k;
do{
t = n + m;
if(t <= k){
m = n;
n = t;
}
}
while(t <= k);
cout << m << " " << n;
return 0;
}