#28417: C解法(使用函式)


az07260906 (呢嗎嗎)

學校 : 不指定學校
編號 : 125438
來源 : [61.224.2.106]
最後登入時間 :
2022-01-22 18:31:27
c087. 00412 - Pi -- UVa412 | From: [36.232.212.253] | 發表日期 : 2021-12-08 23:14

#include <stdio.h>

#include <math.h>

 

int GCD(int, int);//宣告一函式GCD,用來求最大公因數 

 

int main(){

int N;//代表集合中元素個數 

int s[50];

int i,j,counter;//counter用來儲存互質對數的個數 

 

while(scanf("%d", &N)!=EOF){

counter = 0; 

 

if(N == 0){

    break;

    }

    

for(i=0; i<N; i++){

scanf("%d", &s[i]);

}

 

for(i=0; i<N-1; i++){//這個雙重迴圈是用來計算互質個數,然後整體像是C (N取2) 

for(j=i+1; j<N; j++){

if(GCD(s[i], s[j])==1){

counter++;

}

}

 

if(counter == 0){

printf("No estimate for this data set.\n");

}

else{

printf("%lf\n", sqrt(6.0*N*(N-1)/2/counter));//輸出圓周率的值(因為在sqrt(開根號)裡的數字,資料型態原本都是整數,但sqrt本身內部型態要是double,所以才把6-->6.0,以轉換型態) 

}

 

}

return 0;

int GCD(int m, int n){//取最大公因數的函式,參考輾轉相除法(橫式) 

int r;

r = m%n;

 

while(r != 0){

m = n;

n = r;

r = m%n;

}

 

return n;

}

 
#37621: Re: C解法(使用函式)


dadin852@gmail.com (黃少遠)

學校 : 不指定學校
編號 : 207501
來源 : [140.122.105.200]
最後登入時間 :
2023-10-03 15:19:24
c087. 00412 - Pi -- UVa412 | From: [211.76.67.200] | 發表日期 : 2023-09-20 17:30

Thank you ~

 
ZeroJudge Forum