问题描述:
按递增顺序依次列出所有分母为40,分子小于40的最简分数。
分子、分母只有公因数1的分数叫做最简分数或者说分子和分母是互质数的分数,叫做最简分数,又称既约分数,如2/3,8/9,3/8等。
思路:
求分子小于40的最简分数,对分子采用穷举的方法。根据最简分数定义知:分子分母的最大公约数为1,利用最大公约数的方法,判定分子与40是否构成真分数。变量numl、num2分别存储分母、分子的值。求最大公约数一般采用辗转相除的思想,具体步骤如下。(1)用较大的数numl除以较小的数num2,得到的余数存储到变量temp中,temp=numl%num2.(2)上一步中较小的除数num2和得出的余数temp构成新的一对数,并分别赋值给numl和num2,继续做上面的除法。(3)当num2为0时,um1就是最大公约数,否则重复步骤(1)、(2)。
流程图:
代码实现:
1 #include<stdio.h> 2 using namespace std; 3 int main(){ 4 5 int i,numl,num2,temp,n=0; 6 /*n记录最简分数的个数*/ 7 8 cout<<"分子小于40的所有最简分数为: "<< endl; 9 for(i=1;i<40;i++) 10 /*穷举40以内的全部分子*/ 11 num1=40; 12 num2=i; 13 /*采用辗转相除法求出最大公约数*/ 14 while(num2!=0){ 15 temp=num1%num2; 16 num1=num2; 17 num2=temp; 18 } 19 if(num1==1){ 20 n++; 21 cout << i << "/40 " 22 if(n8=0) 23 cout << endl; 24 }
标签:分子,简分数,真分数,num2,编程,40,numl,打卡,分母 From: https://www.cnblogs.com/qmz-znv2/p/17429559.html