题目:传送门
题意:求n个数的最大公约数,暴力不会超时,难点在没有个数控制的输入。
题解:用特殊方法输入。
#include <iostream> #include <cmath> #include <cstdio> #include <cstring> using namespace std; int gcd(int a,int b) { if(b==0) return a; return gcd(b,a%b); } int main() { int t; cin>>t; getchar(); while(t--) { char c; int data[105],cnt=0; while((c=getchar())!=‘\n‘) { if(c>=‘0‘&&c<=‘9‘) { ungetc(c,stdin);//将字符c退回到输入流中 scanf("%d",&data[cnt++]); } } int ans=0; for(int i=0; i<cnt; i++) { for(int j=i+1; j<cnt; j++) { ans=max(ans,gcd(data[i],data[j])); } } cout<<ans<<endl; } return 0; }
时间: 2024-11-05 23:25:48