首页 > 编程语言 >c++打卡第三十五天

c++打卡第三十五天

时间:2023-05-23 17:12:46浏览次数:60  
标签:第三十五 大数 int cin c++ 最大公约数 余数 打卡 小数

一、最大公约数

1、问题描述

 2、设计思路

本题中可以有三种算法,其中我们提供第三种辗转相除法的代码,第一种是从1开始,由于最大公约数可以是最小的那个数,所以我们循环条件到两个之中的小数,如果这个数满足可以整除两个整数,遍历到最大的那个数时,打印出来。第二种是从小数开始循环,当遍历到满足条件的数时直接打印出来就是我们所需要的最大公约数。这里我们介绍辗转相除法,我们记作k=大数/小数,p=大数%小数。这里我们大数=k*小数+p,如果一个数可以整除大数和小数的话,那么余数和小数也是可以被此数整除的,这里可以看出大数和小数的公约数与小数与余数的公约数是相等的,这样我们将小数赋值给大数,余数赋值给小数,那么这个问题就可以转化为逐渐求小数和余数的公约数,直到那个小数为0,此时的大数就是最大公约数。

3、流程图

4、代码实现

#include <iostream>
using namespace std;
int main() {
     int n,m,y,p;
     cin>>m;
     cin>>n;
     if(m<n)
     {
         y=m;
         m=n;
         n=y;
     }
     p=m%n;
     while(p!=0)
     {
         m=n;
         n=p;
         p=m%n;
     }
     cout<<"最大公约数为:"<<m<<endl;
    return 0;
}

5、结果实现

 二、最小公倍数

1、设计思路

我们使用辗转相除法所得到的最大公约数乘以最小公倍数就是两个整数的乘积。

2、代码实现

#include <iostream>
using namespace std;
int main() {
     int n,m,y,p,k,t;
     cin>>m;
     cin>>n;
     t=m*n;
     if(m<n)
     {
         y=m;
         m=n;
         n=y;
     }
     p=m%n;
     while(p!=0)
     {
         m=n;
         n=p;
         p=m%n;
     }
     k=t/m;
     cout<<"最大公约数为:"<<m<<endl;
     cout<<"最小公倍数为:"<<k<<endl;
    return 0;
}

3、结果实现

标签:第三十五,大数,int,cin,c++,最大公约数,余数,打卡,小数
From: https://www.cnblogs.com/zzqq1314/p/17425792.html

相关文章

  • C++ 模板 使用 enum 代替 typename
    enumtestEnum{A,B,C};template<testEnumC>classTestClassTemplate{public:voidprint(){printf("common\n");}};template<>classTestClassTemplate<A>{public:voidprint(){printf(&quo......
  • 5_22打卡_c语言贪吃蛇(失败)
    funtion.h#pragmaonce#include<stdio.h>#include<time.h>#include<stdlib.h>#include<Windows.h>#include<conio.h>#include<iostream>#defineWIDTH20#defineHEIGHT15//地图的宽和高#defineSPEED2000typedefenum{ WALL,......
  • SQLite3 客户端程序,Win32 SDK ,C/C++
    1 WIn32SDK程序,尽量放在一个文件中,主要用到Tree,ListView,Edit控件。2 把控件封装成类,但不封装窗口回调函数。类实例为全局变量,方便消息回调函数调用执行。这样做最简单。3 Edit控件处理按键输入,模仿shell执行SQL查询4打开数据库文件时若没有此文件则新建,否则打开,打开......
  • c++的前世今生
    C++语言是本贾尼·斯特劳斯特卢普在1982年发明的,早期版本被称为CwithClasses,之后在1983年更名为C++。C++语言在发明后很快就获得了广泛的应用,由于其具有高效、灵活和兼容性强的特点,成为了许多领域的首选编程语言。在计算机科学和工程领域,C++语言被广泛用于开发操作系统、......
  • 打卡33
     这个程序运行超时,思路是遍历所有的数,看是否合理。#include<bits/stdc++.h>usingnamespacestd;boolf(intx){ for(inti=2;i<=x/i;i++) { if(x%i==0)returnfalse; } returntrue;}intmain(){ for(inti=1000;i<=9999;i++) { if(f(i)) { ints=0; s+=i%10*1000; ......
  • 5.23打卡
      3.程序流程图 4.代码实现#include<bits/stdc++.h>usingnamespacestd;main(){doublesum=0;inti;for(i=1;i<=64;i++)sum=sum+pow(2,i-1);printf("国王总共需要赏赐给宰相的麦子数为:\n%f\n",sum);} 5.测试截图 ......
  • 打卡20
    多态实例#include<iostream>usingnamespacestd;classHuman{public: virtualvoidtoilet()=0; };classMan:publicHuman{ voidtoilet() { cout<<"上男卫生间"<<endl; }};classWoman:publicHuman{public: voidtoilet()......
  • 打卡第三十二天
    学生CPP成绩计算一、1.定义people类,建立数据成员年龄姓名 构造输出函数2.定义派生类学生类增加数据成员学号成绩3.构造输出函数输出学生类的信息二、三、#include<string>#include<iomanip>#include<iostream>usingnamespacestd;classPerson{protected:......
  • 打卡5.23
    boolprime(intp){ for(inti=2;i<=sqrt(p);i++) if(p%i==0)returnfalse; returntrue;}voidSolution::solve(){ cout<<n<<'='; if(prime(n))cout<<n<<endl; else{ for(inti=2,judge=......
  • 【重学C++】04 | 说透C++右值引用(上)
    文章首发【重学C++】04|说透C++右值引用、移动语义、完美转发(上)引言大家好,我是只讲技术干货的会玩code,今天是【重学C++】的第四讲,在前面《03|手撸C++智能指针实战教程》中,我们或多或少接触了右值引用和移动的一些用法。右值引用是C++11标准中一个很重要的特性。第一次接......