图解算法使用C++

一、计算思维与程序设计

1.2 生活中到处都是算法

  • 计算最大公约数(辗转相除法)
// C++
#include<iostream>
#include<stdio.h>
using namespace std; int test_way1(int Num1,int Num2){
int tmp;
if(Num1<Num2){
tmp = Num1;
Num1 = Num2;
Num2 = tmp;
}
while(Num2 !=0){
tmp = Num1 % Num2;
Num1 = Num2;
Num2 = tmp;
}
return Num1;
} int test_way2(int Num1,int Num2){
if(Num1 % Num2==0) return Num2;
else return test_way2(Num2,Num1 %Num2);
} int main(){
int Num1 = 10;
int Num2 = 20;
printf("Num1:%d ,Num2:%d \n",Num1,Num2);
int res = test_way1(Num1,Num2);
// int res = test_way2(Num1,Num2);
cout << "最大公约数为:" << res << endl;
return 0;
}

附上使用Python递归解法:

def gcd(a,b):
while b!=0:
b,a = a%b,b
return a print(gcd(10,20))

【图解算法使用C++】1.2 生活中的算法的更多相关文章

  1. C++算法原理与实践(面试中的算法和准备过程)

    第0部分 简介 1. 举个例子:面试的时候,可能会出一道算法考试题,比如写一个 strstr 函数——字符串匹配. 可能会想到用KMP算法来解题,但是该算法很复杂,不适宜在面试中使用. 1.1 C++ ...

  2. HuffmanTree的浅析和在C#中的算法实现

    无论是在我们的开发项目中,还是在我们的日常生活中,都会较多的涉及到文件压缩.谈到文件压缩,可能会有人想问文件压缩到底是怎么实现的,实现的原理是什么,对于开发人员来说,怎么实现这样一个压缩的功能. 接下 ...

  3. [区块链] 密码学中Hash算法(基础)

    在介绍Hash算法之前,先给大家来个数据结构中对hash表(散列表)的简单解释,然后我再逐步深入,讲解一下hash算法. 一.Hash原理——基础篇 1.1 概念 哈希表就是一种以 键-值(key-i ...

  4. 通过一个生活中的案例场景,揭开并发包底层AQS的神秘面纱

    本文导读 生活中案例场景介绍 联想到 AQS 到底是什么 AQS 的设计初衷 揭秘 AQS 底层实现 最后的总结 当你在学习某一个技能的时候,是否曾有过这样的感觉,就是同一个技能点学完了之后,过了一段 ...

  5. Atitit.软件中见算法 程序设计五大种类算法

    Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...

  6. 生活中的MVC模式,一个吃货的理解。

    以下是生活中对于MVC模式的领悟,虽然可笑,轻喷. 2015年 8月 26日 M  => Model       模型 我认为叫做模具更好的理解.批量加工生产具有相同特征的东西.        ...

  7. 【转】你真的理解Python中MRO算法吗?

    你真的理解Python中MRO算法吗? MRO(Method Resolution Order):方法解析顺序. Python语言包含了很多优秀的特性,其中多重继承就是其中之一,但是多重继承会引发很多 ...

  8. STL中的算法小结

    ()要运用STL的算法,首先必须包含头文件<algorithm>,某些STL算法用于数值处理,因此被定义于头文件<numeric> ()所有STL算法都被设计用来处理一个或多个 ...

  9. 机器学习中的算法-决策树模型组合之随机森林与GBDT

    机器学习中的算法(1)-决策树模型组合之随机森林与GBDT 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使 ...

  10. 广告系统中weak-and算法原理及编码验证

    wand(weak and)算法基本思路 一般搜索的query比较短,但如果query比较长,如是一段文本,需要搜索相似的文本,这时候一般就需要wand算法,该算法在广告系统中有比较成熟的应 该,主要 ...

随机推荐

  1. Windows安装使用Chocolatey 包软件管理(类似 rpm , yum, brew , apt-get 包管理器工具)

    Windows也能像Linux或者Mac那样命令行安装管理软件了,,,真的太方便了 下载安装 使用window powershell 用管理员运行 Set-ExecutionPolicy Bypass ...

  2. PHP递归的简单理解

    递归简单来说就是自己调用自己 比如说 A向B问路 但是B不知道 于是乎B问C 但是C不知道 于是乎问D D知道 D把怎么走告诉C C在把怎么走告诉B B再把怎么走告诉A A虽然是最先问的 但是是最后一 ...

  3. Kong网关安装自定义插件

    安装自定义插件需要注意kong网关的版本要求!! 下面以安装Skywalking插件为例,要求Kong网关是2.2及以上版本,https://github.com/apache/skywalking- ...

  4. Python Type Hint中Optional[str]=None和str=None的区别

    Python Type Hint中Optional[str]=None和str=None的区别 1 问题来源 在读到Fluent Python, 2ed Edition, P260时产生了一些疑问: ...

  5. Java题目集 函数

    6-1 汽车类 (20 分)   编写汽车类,其功能有启动(start),停止(stop),加速(speedup)和减速(slowDown),启动和停止可以改变汽车的状态(on/off),初始时状态为 ...

  6. Java笔记第五弹

    编码表 将字符存储到计算机中----编码:反之,则为解码: GBK编码:最常用的中文码表 GB18030--最新的中文码表 Unicode字符集:业界的一种标准,也称为统一码.万国码 UTF-8编码: ...

  7. D - Swap Free Gym - 102423D 二分图性质:补图最大团 = 点的个数 - 最大匹配数

    题意:给你一个串的某些全排列,没有重的,让你求一个最大的集合能有多少个元素,集合的满足条件:交换一个串的任意两个位置上的字母,不能变成集合里的另一个串. 思路:如果一个串不能通过交换一次字母位置变成另 ...

  8. Linux & 标准C语言学习 <DAY12_2>

    一.堆内存     1.什么是堆内存         是进程的一个内存段(text.data.bss.stack.heap)         由程序员手动管理         特点是足够大,缺点是使用 ...

  9. Gateway 网关

    Spring Cloud Gateway 作为 Spring Cloud框架的第二代网关,在功能上要比 Zuul更加的强大,性能也更好.随着 Spring Cloud的版本迭代,Spring Clou ...

  10. Windows7蓝牙音响连接成功,但是无法播放音乐,没有声音

    本人使用的蓝牙是博通94360CD的无线网卡集成的,在Windows7系统,成功安装蓝牙驱动,但是无论连接什么蓝牙音响设备,都可以连接成功,但是在音频管理却没有蓝牙音响的设备,自然就没有声音.后来找到 ...