給出n個正整數(shù),任取兩個數(shù)分別作為分子和分母組成最簡真分數(shù),編程求共有幾個這樣的組合。
輸入第一行是一個正整數(shù)n(n<=600)。第二行是n個不同的整數(shù),相鄰兩個整數(shù)之間用單個空格隔開。整數(shù)大于1且小于等于1000。輸出一個整數(shù),即最簡真分數(shù)組合的個數(shù)。樣例輸入73 5 7 9 11 13 15樣例輸出 17本題我使用的主要方法是碾轉相除,又用到了兩個函數(shù)(一個為最簡分數(shù)的判斷,一個為真分數(shù)的判斷),下面附上ac代碼。若有更好的解題思路歡迎提建議。#include<stdio.h>int zf(int n,int m){ int temp; while(n!=0) { temp=m%n; m=n; n=temp; } return m;}double fs(int n,int m){ return (double)n/m;}int main(){ int n,i,j,a[10000]={0},t=0,m; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); for(i=1;i<=n;i++) for(j=1;j<=n;j++) if(zf(a[i],a[j])==1&&fs(a[i],a[j])<1) t++; PRintf("%d",t); return 0;}
新聞熱點
疑難解答