抽象编程——九章算术

news2024/10/5 20:21:47

九章算术

开篇,求最大公约数——辗转相减法

声明三个值

最大值 = X 、最小值为 = Y、商值 = Z

用三个值解决辗转相减法

用最大值减去最小值得到商值,然后去掉原本的最大值,拿原本的最小值与商值作比较,得到第二个最大值与第二个最小值,然后用最大值减去最小值,重复最大值减去最小值,直到最大值等于最小值,也就是他们相减等于0

举个例子

例如两个元素,一个为68,一个为78

最大值为78,最小值为68,那么拿最大值78减去最小值68得到商值10

那么去掉原本的最大值78,拿原本的最小值68与商值10比较

得到第二个最大值为68,第二个最小值10,拿最大值68减去最小值10得到商值58

去掉原本的最大值68,得到第二个最大值58,第二个最小值10,

重复循环第二句去最大值,得新最大值,新最小值,直到他们的最大值等于最小值

58-10=48

48-10=38

38-10=28

28-10=18

18-10=8

10-8=2

8-2=6

6-2=4

4-2=2

2-2=0

得到68与10的最大公约数为2,知道了大概逻辑,用c/c++来写辗转相减

我们知道有最大值和最小值,那么这个最大值,最小值,可以用键盘输入,也可以用常量

第一步

    int x,y;
    scanf("%d%d",&x,&y);

他们需要判断最大值最小值,然后用最大值减去最小值

第二步

if (x > y)
   x -= y;
else
   y -= x;

循环这一步直到他们等于零

第三步

       do{
        if (x > y)
            x -= y;
        else
            y -= x;
    } while (x != y);

最后将他们合起来输出

#include <stdio.h>
void main(){
    int x,y;
    scanf("%d%d",&x,&y);
       do{
        if (x > y)
            x -= y;
        else
            y -= x;
    } while (x != y);
    printf("最大值为%d\n",x);
}

因为到最后他们的值是相等的,你在输出选x还y是没有影响的

运行结果

 

循环只有一个do....while吗

不不不,还有while循环和for循环

for循环仅供参考

#include <stdio.h>
main(){
    int x,y;
    scanf("%d%d",&x,&y);
    for (int z; z > 0; x == y)
    {
    if (x > y)
         x -= y;
    else
     y -= x;
    }
    printf("最大公约数为%d\n",x);
}

while循环仅供参考

#include <stdio.h>
main(){
    int x,y;
    scanf("%d%d",&x,&y);
    while (1)
    {
        if (x > y)
            x -= y;
        else
            y -= x;
        if (x == y)
        {
            break;
        }       
    }
    
    printf("最大公约数为%d\n",x);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring AOP介绍与使用

文章目录 1&#xff0c;AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念 2&#xff0c;AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通知类配给容器…

京东太猛,手写hashmap又一次重现江湖

说在前面 在40岁老架构师 尼恩的读者社群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如京东、极兔、有赞、希音、百度、网易的面试资格&#xff0c;遇到一个很重要的面试题&#xff1a; 手写一个hashmap&#xff1f; 尼恩读者反馈说&#xff0c;之前总是听人说&#…

栈——“数据结构与算法”

各位uu们&#xff0c;好久不见&#xff01;&#xff01;&#xff01;甚是想念&#xff01;&#xff01;&#xff01; 好久没有更新我们的数据结构与算法专栏啦&#xff0c;最近小雅兰新学了很多知识&#xff0c;第一时间就想迫不及待地和C站的小伙伴们分享呢&#xff0c;下面&a…

LeetCode高频算法刷题记录3

文章目录 1. 搜索旋转排序数组【中等】1.1 题目描述1.2 解题思路1.3 代码实现 2. 有效的括号【简单】2.1 题目描述2.2 解题思路2.3 代码实现 3. 买卖股票的最佳时机【简单】3.1 题目描述3.2 解题思路3.3 代码实现 4. 环形链表【简单】4.1 题目描述4.2 解题思路4.3 代码实现 5. …

ChatGPT Plus 插件最全解读

前言&#xff1a; OpenAI放出大招&#xff0c;向所有ChatGPT Plus用户开放联网功能和众多插件&#xff0c;允许ChatGPT访问互联网并使用70个第三方插件。 本批第三方插件能够全方位覆盖衣食住行、社交、工作以及学习等日常所需&#xff0c;基本上能够扮演24小时私人助理的角色…

SaleSmartly聊天机器人如何帮助您的电商业务

从基于规则的机器人到虚拟助手&#xff0c;聊天机器人正在成为网络交互的标准。越来越多的企业正在使用它们来吸引客户、改善客户服务并增强用户体验。现在有非常多的软件也提供聊天机器人的帮助&#xff0c;比如SaleSmartly&#xff08;ss客服&#xff09;&#xff0c;本文以它…

【包真】我的第一次webpack优化,首屏渲染从9s到1s

目录 前言 1.生产环境关闭productionSourceMap、css sourceMap 2.分析大文件&#xff0c;找出内鬼 3. 逐个包优化 TreeShaking 使用cdn加载第三方js 懒加载有间接依赖的包 moment.js的优化 还有进步空间&#xff1f; 最后 前言 本文基于vue2(虽然vue…

我的小实验项目:实现人体红外采集控制LED灯亮灭

从传感器电路图中找到红外感应&#xff0c;找到接口D2&#xff0c;可以看出&#xff0c;采集的信息从D2进入 从核心板电路图找到D2接口&#xff0c;发现引脚为PB8 并用相似的方法&#xff0c;找到用于代表有人无人的LED灯 在STM32CubeMx里设置 在Keil里设置代码 main.c&#x…

智慧物业如何整合生态资源,小程序技术或成为突破口

数字物业和智慧社区成为了当前数字化转型的热点领域。这些新兴技术的应用&#xff0c;不仅为业主提供了更加便捷、高效的服务&#xff0c;也为物业公司和城市管理带来了全新的运营模式和管理方式。 根据数据显示&#xff0c;截至2021年底&#xff0c;中国物业服务企业智慧化改造…

基于Java+SpringBoot+Vue前后端分离网上银行系统设计与实现(视频讲解)

博主介绍&#xff1a;✌全网粉丝3W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面有丰富的经验…

Element-ui中el-table展开行

类似这样的需求还记录不记录呢&#xff0c;其实我觉得是没必要的&#xff0c;但是想来还是记录一下吧&#xff0c;因为element-ui里面组件本身也很多&#xff0c;其中el-table的配置样式需求更是很多很多&#xff0c;所以这还是决定来记录一下&#xff0c;以后再有类似的需求也…

linux内核篇-输入输出系统(块设备,字符设备)

计算机系统的输入和输出系统都有哪些呢&#xff1f;有键盘、鼠标、显示器、网卡、硬盘、打印机、CD/DVD 等等&#xff0c;多种多样。但是对于操作系统来讲&#xff0c;却是一件复杂的事情&#xff0c;因为这么多设备&#xff0c;形状、用法、功能都不一样&#xff0c;怎么才能统…

SpringBoot中整合Swagger2接口文档

目录 1、maven依赖 2、swagger2 注解整体说明 2.1、请求类的描述 2.2、方法和方法参数的描述 2.3、方法的响应状态的描述 2.4、对象的描述 3、请求类的描述 3.1、Api&#xff1a;请求类的说明 3.2、示例&#xff1a; 4、方法和方法参数的描述 4.1、ApiOperation&#xff1a…

Linux 中的文件类型

目录 Linux文件类型说明 软链接 软链接特点 软链接工作过程 正常原文件a工作流程 文件a的软链接工作流程 硬链接 硬链接的特点 文件a的硬链接工作流程 软链接与硬链接的比较 测试软链接以及硬链接 1.进入根目录 2.创建test目录 3.进入test目录中&#xff0c;并创建a…

基于Redis的分布式锁,Redisson的简单使用和常用配置

介绍 Redisson是一个在Redis基础上实现的Java驻内存数据网格。Redisson提供了使用Redis的最简单最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离&#xff0c;从而让使用者能够将精力更集中的放在处理业务逻辑上。 Redisson官方文档地址&#xff1a;https://githu…

蛋糕烘焙店小程序开发 让生活多点甜

蛋糕甜品因为较高的颜值、香甜的口感深受大众喜欢&#xff0c;当我们路过一家蛋糕烘焙店的时候&#xff0c;飘香的味道让我们流连忘返。但是互联网时代&#xff0c;各个行业都在转型&#xff0c;蛋糕烘焙店也需要由传统线下店面向线上线下结合的方式转变&#xff0c;以求摆脱区…

数据对象属性分类

数据集由数据对象组成&#xff0c;一个数据对象代表一个实体。数据对象又称样本、实例、数据点或对象。属性&#xff08;attribute&#xff09;是一个数据字段&#xff0c;表示数据对象的一个特征。属性向量&#xff08;或特征向量&#xff09;是用来描述一个给定对象的一组属性…

MySQL之单表访问方法

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的&#xff1a;从根儿上理解MySQL》 对于我们这些MySQL的使用者来说&#xff0c;MySQL其实就是一个软件&#xff0c;平时用的最多的就是查询功…

快码住!!! 二叉树概念、重要性质、存储结构 技巧大总结!

文章目录 树树的概念树的表示树在实际中的应用 二叉树二叉树的概念特殊的二叉树 二叉树的性质二叉树性质应用的练习题 二叉树的存储结构顺序结构链式结构 树 树的概念 树是一种非线性的数据结构&#xff0c;它是由n(n>0)个有限结点组成的一个具有层次关系的集合。把它叫做…

语言模型及Word2vec与Bert简析

语言模型可以对一段文本的合理性概率进行估计&#xff0c;对信息检索&#xff0c;机器翻译&#xff0c;语音识别等任务有着重要的作用。就以前的学习笔记&#xff0c;本文简单总结了NLP语言模型word2vec和bert分享给大家&#xff0c;疏漏之处&#xff0c;望请指出&#xff0c; …