Codeforces Round #651 (Div. 2) 参与排名人数14559
[codeforces 1370A] Maximum GCD 找n/2的值
总目录详见https://blog.csdn.net/mrcrack/article/details/103564004
在线测评地址https://codeforces.com/contest/1370/problem/A
Problem | Lang | Verdict | Time | Memory |
---|---|---|---|---|
A - Maximum GCD | GNU C++17 | Accepted | 15 ms | 200 KB |
题目大意:在区间[1,n]任选不相等的两个数a,b,求出这两数的最大公约数。涉及到多种选法,要求对应的最大公约数,在所有选法中对应的值最大,输出这个最大值。
第一发WA,想歪了,比赛中,向歪了的思路是很难纠正的,找一些数据来扭正思路是很关键
n=99
99可选出GCD(9,99)=9,GCD(11,99)=9
99中可选出GCD(49,98)=49,此时对应最大值49
n=100
100中可选出GCD(50,100)=50,此时对应最大值50
上述数据出来后,发现开窍了,思路扭了过来,AC代码如下:
#include <stdio.h>
void solve(){
int n;
scanf("%d",&n);
if(n%2)n--;//化奇数为偶数
printf("%d\n",n/2);//偶数的一半
}
int main(){
int t;
scanf("%d",&t);
while(t--)solve();
return 0;
}