GCD(按行读入整数 stringstream的应用) - Maximum GCD - UVA 11827
题意:
求 给 定 的 n 个 数 中 , 两 两 之 间 的 最 大 公 约 数 的 最 大 值 。 求给定的n个数中,两两之间的最大公约数的最大值。 求给定的n个数中,两两之间的最大公约数的最大值。
输入:
T ( 1 < T < 100 ) 组 测 试 数 据 , T(1 < T < 100)组测试数据, T(1<T<100)组测试数据,
每 组 包 括 一 行 正 整 数 数 量 在 ( 1 , 100 ) 内 。 每组包括一行正整数数量在(1,100)内 。 每组包括一行正整数数量在(1,100)内。
输出:
一 个 正 整 数 , 表 示 答 案 。 一个正整数,表示答案。 一个正整数,表示答案。
Sample Input
3
10 20 30 40
7 5 12
125 15 25
Sample Output
20
1
25
分析:
由 于 每 组 数 据 的 数 都 小 于 100 个 , 所 以 我 们 可 以 直 接 暴 力 乱 搞 。 由于每组数据的数都小于100个,所以我们可以直接暴力乱搞。 由于每组数据的数都小于100个,所以我们可以直接暴力乱搞。
重 点 在 于 每 组 数 据 的 数 如 何 读 入 。 重点在于每组数据的数如何读入。 重点在于每组数据的数如何读入。
这 里 用 到 s t r i n g s t r e a m 类 , 配 合 g e t l i n e 函 数 整 行 读 取 字 符 串 , 再 通 过 s t r i n g s t r e a m 类 转 化 为 整 型 数 。 这里用到stringstream类,配合getline函数整行读取字符串,再通过stringstream类转化为整型数。 这里用到stringstream类,配合getline函数整行读取字符串,再通过stringstream类转化为整型数。
s t r i n g s t r e a m 在 头 文 件 s s t r e a m 中 。 stringstream在头文件sstream中。 stringstream在头文件sstream中。
代码:
#include <sstream>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int N=110;
int T;
string line;
int num[N], idx;
int gcd(int a,int b)
{
return b ? gcd(b,a%b) : a;
}
int main()
{
cin>>T;
getline(cin,line);
while(T--)
{
idx=0;
getline(cin,line);
stringstream tmp;
tmp<<line;
while(tmp>>num[idx++]);
idx--; //最后一个空字符
int ans=0;
for(int i=0;i<idx;i++)
for(int j=i+1;j<idx;j++)
ans=max(ans,gcd(num[i],num[j]));
cout<<ans<<endl;
}
return 0;
}