2019第十届蓝桥杯国赛c++B组 A

A-题目描述:

请找到两个正整数X和Y满足下列条件:
1、2019<X<Y
2、20192、X2、Y2构成等差数列
满足条件的X和Y可能有多种情况,请给出X+Y的值,并且令X+Y尽可能的小。

#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
#include<set>
using namespace std;
const int inf=0x3fffffff;
const int maxn=100100;

int main(){

	// ios::sync_with_stdio(false);
	// cin.tie(0),cout.tie(0);

//	for(int x=2020;x<maxn;x++) {
//		
//		for(int y=x+1;y<maxn;y++){
//			
//			if(y*y-x*x==x*x-2019*2019){
//				
//				cout<<x<<" "<<y<<" "<<x+y<<endl;
//			}
//		}
//	}
	// 2019 x y
	for(int x=2020;x<maxn;x++) {
		
		int yy=x*x+x*x-2019*2019;
		int y=sqrt(yy);
		
		if(y>x&&y*y==yy)
			cout<<x<<" "<<y<<" "<<x+y<<endl; 
	}
	
	
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_924485343/article/details/109464363