首页 > 编程语言 >打卡 c语言趣味编程 列出真分数序列

打卡 c语言趣味编程 列出真分数序列

时间:2023-05-24 21:23:11浏览次数:33  
标签:分子 简分数 真分数 num2 编程 40 numl 打卡 分母

问题描述:
  按递增顺序依次列出所有分母为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

相关文章

  • 打卡3
    问题描述:魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的......
  • c++打卡练习(38)
    求一个范围内的所有素数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ intstart,end,i,j,m=0; cout<<"给定你所要求的素数的范围:"<<endl; cin>>start; cin>>end; cout<<start<<"到"<<end<<"之......
  • 每日打卡一小时(第三十三天)
    一.问题描述对于输入的每一批数,按从小到大排序后输出。一行输入为一批数,第一个输入为数据类型(1表示整数,2表示字符型数,3表示有一位小数的浮点数,4表示字符串,0表示输入结束),第二个输入为该批数的数量size(0<size<=10),接下来为size个指定类型的数据。输出将从小到大顺序输出数据。二.......
  • 打卡第三十三天
    分数加法运算重载一、1.分数为0时,表示成0z1m,如果结果为负数,那么分子取负数,分母为正数二、三、#include<iostream>usingnamespacestd;classFS{private:intfz;intfm;public:FS(){}FS(intz,intm):fz(z),fm(m){}voidset(intx,inty){fz=x;......
  • 2023.5.24编程一小时打卡
    一、问题描述:已知Horse类是Pegasus类的父类,根据以下主函数完善程序内容,以实现规定的输出。不允许改变主函数的内容。intmain(){Horse*p1=newHorse;//输出:Horse申请了空间...Horse*p2=newPegasus;/*输出两行:Horse申......
  • 实验4 函数与异常处理编程
    print(sum)sum=42print(sum)definc(n):sum=n+1print(sum)returnsumsum=inc(7)+inc(7)print(sum)四处sum作用域不同。第一个是内置函数名称,第二个是赋值名称,第三个是局部变量,第四个是全局变量list1=[1,9,8,4]print(sorted(list1))print......
  • Linux网络编程中的惊群问题
    1.什么是惊群问题​ 如今网络编程中经常用到多进程或多线程模型,大概的思路是父进程创建socket,bind、listen后,通过fork创建多个子进程,每个子进程继承了父进程的socket,调用accpet开始监听等待网络连接。这个时候有多个进程同时等待网络的连接事件,当这个事件发生时,这些进程被同时......
  • 打卡
    1.问题:求两个正整数之间的最大公约数。2.思路:用暴击穷举法,简单粗暴地把1~y(前面已经假设x>y)都列出来分别判断是否为x、y的公约数,然后再找到其中最大的一个。3.程序流程图: 4.代码实现:#include<iostream>usingnamespacestd;intmain(){ intx,y; cin>>x>>y; intco......
  • 5月24日打卡
    例5-9常引用做形参 #include<iostream>#include<cmath>usingnamespacestd;classPoint{public:Point(intx=0,inty=0):x(x),y(y){}intgetX(){returnx;}intgetY(){returny;}friendfloatdist(constPoint&p1,constPoint......
  • 记录一下SOCKET编程
    记录一下基本的socket编程首先贴几段代码centos下的server代码#include<bits/stdc++.h>#include<unistd.h>#include<arpa/inet.h>#include<sys/socket.h>usingnamespacestd;intmain(){intserver,client;structsockaddr_inserverAddr,clientAddr......