给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。
输入第一行是一个正整数n(n<=600)。第二行是n个不同的整数,相邻两个整数之间用单个空格隔开。整数大于1且小于等于1000。输出一个整数,即最简真分数组合的个数。样例输入73 5 7 9 11 13 15样例输出 17本题我使用的主要方法是碾转相除,又用到了两个函数(一个为最简分数的判断,一个为真分数的判断),下面附上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;}
新闻热点
疑难解答