小学生又来写题解啦!
刚看到范围,觉得不能枚举。
仔细想一下,其实可以,因为第一组解应该离左边界较近,很快可以出答案。
所以,我们可以尝试暴力枚举。
最大公约数就用辗转相除法,写成一个函数,大家应该都会。
找到解就结束程序。
送上满分代码:
#include <iostream>
#include <cstdio>
#define LL long long
using namespace std;
LL gcd(LL x, LL y) //辗转相除法。
{
if(y == 0) return x;
return gcd(y, x % y);
}
int main()
{
LL L, R;
scanf("%lld%lld", &L, &R);
for (LL a = L; a <= R; a++)
for (LL b = a+1; b <= R; b++)
for (LL c = b+1; c <= R; c++) //这样枚举可以直接保证三个数的大小关系。
if (gcd(a, b) == 1 && gcd(b, c) == 1 && gcd(a, c) != 1)
{
printf("%lld %lld %lld", a, b, c);
return 0; //记得结束掉,因为只输出一组解。
}
printf("-1");
return 0;
}
首发:2022-01-31 11:32:28
标签:return,gcd,题解,LL,long,CF483A,include From: https://www.cnblogs.com/liangbowen/p/16622758.html