poj-1491

来源:互联网 发布:中国云计算行业分析 编辑:程序博客网 时间:2024/06/06 23:56
// /148K   0MS C++#include <cstdio>#include <cmath>#include <cstring>int val[55];int valNum;int gcd(int p, int q) {    int r = p%q;    if (r == 0) {        return q;    } else {        return gcd(q, r);    }}int MAX(int A, int B) {    return A > B ? A: B;}int MIN(int A, int B) {    return A < B ? A: B;}void solve(int valNum) {    int pairNum = 0;    int NOpairNum = 0;    for (int i = 0; i < valNum - 1; i++) {        for (int j = i + 1; j < valNum; j++) {            int factor = gcd(MAX(val[i], val[j]), MIN(val[i], val[j]));            pairNum++;            if (factor <= 1) {                NOpairNum++;            }        }    }    if (NOpairNum == 0) {        printf("No estimate for this data set.\n");    } else {        printf("%.6lf\n", sqrt(6*pairNum/(double)NOpairNum));    }}int main() {    while(scanf("%d", &valNum) != EOF) {        if (valNum == 0) {            return 0;        }        for (int i = 0; i < valNum; i++) {            scanf("%d", &val[i]);        }        solve(valNum);    }}

水题,纯粹练一下辗转相除
0 0
原创粉丝点击