V - Maximum GCD
Posted 1898
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了V - Maximum GCD相关的知识,希望对你有一定的参考价值。
#include<cstdio> #include<iostream> #include<cstring> using namespace std; typedef long long ll; ll f(ll a,ll b) { if(a%b == 0) return b; else f(b,a%b); } int main() { ll a,b,T; scanf("%lld",&T); while(T--) { ll A[105],len=0,Max=0; memset(A,0,sizeof(A)); char ch;
while(1) /*这一段是代码的关键部分,实现的功能是当键入回车键时,会结束读入数组; { scanf("%lld",&A[len++]); 用len记录数组下标; while((ch=getchar())==‘ ‘) 当读入的字符是空格时,一直循环 ; ungetc(ch,stdin); ungetc函数:字符返回函数,如果读入到的东西不是”空格“的话,那么将getchar读到的数据返回到缓冲区,下一次scanf就会读进去,如果是回车,那么就break; if(ch==‘\n‘) break; }
//printf("len = %lld\n",len); for(int i=0;i<len-1;i++) { for(int j=i+1;j<len;j++) { Max=max(f(A[i],A[j]),Max); } } printf("%lld\n",Max); } return 0; }
知识点:一直读入数据,直到键入回车键是停止。
以上是关于V - Maximum GCD的主要内容,如果未能解决你的问题,请参考以下文章
启发式搜索Codechef March Cook-Off 2018. Maximum Tree Path
UVA - 11827 - Maximum GCD,10200 - Prime Time (数学)
[CC-ANUGCD]Maximum number, GCD condition
leetcode_1292. Maximum Side Length of a Square with Sum Less than or Equal to Threshold_[二维前缀和](代码片段