UVa 412 - Pi

来源:互联网 发布:手机淘宝怎么改成差评 编辑:程序博客网 时间:2024/05/18 04:18

题目:给你一种圆周率pi的近似求法,所及给出一组数,里面数对互质的概率p = 6/(p1*pi)。

分析:简单题、数论。直接利用辗转相除求解即可。如果p为0则不能用来计算(分母是0)。

#include <cstdlib>#include <cstdio>#include <cmath>int number[51];int gcd( int a, int b ){return a%b?gcd( b, a%b ):b;}int main(){int n;while ( ~scanf("%d",&n) && n ) {for ( int i = 0 ; i < n ; ++ i )scanf("%d",&number[i]);int count = 0;for ( int i = 0 ; i < n ; ++ i )for ( int j = 0 ; j < i ; ++ j )if ( gcd( number[i], number[j] ) == 1 )count ++;double p = 2.0*count/n/(n-1);if ( count ) printf("%.6lf\n",sqrt(6/p));else printf("No estimate for this data set.\n");}return 0;}