#include<iostream>
#include<math.h>
using namespace std;
int GCD(int a,int b){
if(b)while((a%=b) && (b%=a));
return a+b;
}
int main(){
int n,i;
cin>>n;
while(n--){
int m[99]={0},maximum=0;
for(i=0;i<=98;i++){
cin>>m[i];
if(getchar()=='\n')
break;
}
for(int j=0;j<=i-1;j++)
for(int k=j+1;k<=i;k++)
maximum=max(maximum,GCD(m[j],m[k]));
cout<<maximum<<endl;
}
return 0;
}
自己測沒問題啊 為啥用測資會錯呢?
#include
#include
using namespace std;
int GCD(int a,int b){
if(b)while((a%=b) && (b%=a));
return a+b;
}
int main(){
int n,i;
cin>>n;
while(n--){
int m[99]={0},maximum=0;
for(i=0;i<=98;i++){
cin>>m[i];
if(getchar()=='\n')
break;
}
for(int j=0;j<=i-1;j++)
for(int k=j+1;k<=i;k++)
maximum=max(maximum,GCD(m[j],m[k]));
cout<<maximum<<endl;
}
return 0;
}
自己測沒問題啊 為啥用測資會錯呢?
直接用sstream就好了
getline(cin,str)取一整行 然後在while(ss>>num)分析就好了....
附上相關網站
https://dotblogs.com.tw/v6610688/2013/11/08/cplusplus_stringstream_int_and_string_convert_and_clear