GitBook

1015: 【C语言训练】列出最简真分数序列*

<span class=green>时间限制: </span>1 Sec  <span class=green>内存限制: </span>128 MB

题目描述

<div class=content>

按递增顺序依次列出所有分母为40,分子小于40的最简分数。

</div>

输入

<div class=content></div>

输出

<div class=content>

分数之间用逗号分开(含最末逗号)

</div>

样例输入

<div class=content><span class=sampledata></span></div>

样例输出

<div class=content><span class=sampledata>1/40,3/40,7/40,9/40,11/40,13/40,17/40,19/40,21/40,23/40,27/40,29/40,31/40,33/40,37/40,39/40,</span></div>

提示

<div class=content>

对分子采用穷举法,利用最大公约数的方法,判断分子与40是否构成真分数。

求最大公约数的算法 ``` int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } ``` 当分子和分母的最大公约数是1的时候 此分数为最简分数 按照要求输出即可 ``` #include int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { for(int i=1; i<40; i++) { if(gcd(40,i)==1) printf("%d/40,",i); } return 0; } ``` 题目地址:[【HPU】[1015]【C语言训练】列出最简真分数序列](122.206.78.33:8080/JudgeOnline/problem.php?id=1015)