三个数算法
① 三个数连比的算法有哪些呢
连比的算法有很多,详细介绍如下:
1、如果前一个比的后项和后一个比的前项相同,可把两个比直接写成连比。如甲∶乙=3∶2,乙∶丙=2∶4,甲∶乙∶丙=3∶2∶4。
4、连比是两个以上的部分量的连续相比。它反映了各部分所占份数与总份数之间的关系,但连比不是连除。求三个数连比的方法一般的是,如果甲、乙两数的比是a∶b,乙、丙两数的比是b∶c,那么,表示甲、乙、丙三个数的比可以写成a∶b∶c。a∶b∶c就叫做甲、乙、丙三个数的连比。
② 3个数最大公约数算法
对于3个数A,B,C,最小公倍数=A*B*C/最小公约数的平方
对于对小公约数,可以采用两次辗转相除法
先求A,B的最小公约数D
再求出C与D的最小公约数E
那么E就是这三个数的最小公约数
A*B*C/E/E就是三个数的最小公倍数
举例如下
求1734,816和1343的最大公约数:
首先求1734,816的最大公约数:
gcd(1734,816)表示开始求1734,816的最大公约数。
gcd(1734,816)
=gcd(1734,816)1734=2*816+102
(102为1734除以816的余数,而2为商,以后的如此类推)
=gcd(816,102)816=8*102
(至此余数为0,则102为1734和816的最大公约数)
运用3个数的最大公约数的求解原理:
只需求的1343和102的最大公约数即为1734,816和1343的最大公约数。
gcd(1343,102)
=gcd(1343,102)1343=13*102+17
=gcd(102,17)102=6*17
(至此余数为0,则17为即为1734,816和1343的最大公约数)
则17为即为1734,816和1343的最大公约数
更相减损术求解(也是现学现卖的)
原理:
第一步:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步。
第二步:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止,则这个等数就是所求的最大公约数。
其中所说的“等数”,就是最大公约数。求“等数”的办法是“更相减损”法,实际上就是辗转相除法。
首先看1734和816.
两个数都是偶数,为了简化计算,都除以2得到867和408.
下面是计算过程:
867-408=459
459-408=51
408-51=357
357-51=306
306-51=255
255-51=204
204-51=153
153-51=102
102-51=51
至此所得的减数和差相等,由于867和408是1734和816除以2得到的数字。故
1734和816的最大公约数还是102(51*2=102).
在用更相减损术求102和1343的的最大公约数即为1734,816和1343的最大公约数。
1343-102=1241(由于102*10=1020,1343-1020=323,323还是大于102的)
...
...
...
323-102=221
221-102=119
119-102=17
102-17=85
85-17=68
68-17=51
51-17=34
34-17=17
至此所得的减数和差相等.故17为1734,816和1343的最大公约数
③ 设计算法找出三个数中的最大值
有a,b,c三个数,比较它们的大小
方法一,按顺序两两比较,取较大的
if (a > b) {
max = a;
} else {
max = b;
}
if (max < c) {
max = c;
}方法二,假设第一个是最大的,与后面两个数进行比较,将较大的值赋给max
int max = a;
if (b > max) {
max = b;
}
if (c > max) {
max = c;
}
拓展资料
1、什么是算法
算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。
mark:我们可以把所有的算法想象为一本“菜谱”,特定的算法比如菜谱中的的一道“老醋花生米”的制作流程,只要按照菜谱的要求制作老醋花生米,那么谁都可以做出一道好吃的老醋花生米。so,这个做菜的步骤就可以理解为:“解决问题的步骤”
2、算法的意义
假设计算机无限快,并且计算机存储容器是免费的,我们还需要各种乱七八糟的算法吗?如果计算机无限快,那么对于某一个问题来说,任何一个都可以解决他的正确方法都可以的!
当然,计算机可以做到很快,但是不能做到无限快,存储也可以很便宜但是不能做到免费。
那么问题就来了效率:解决同一个问题的各种不同算法的效率常常相差非常大,这种效率上的差距的影响往往比硬件和软件方面的差距还要大。
3、如何选择算法
第一首先要保证算法的正确性
一个算法对其每一个输入的实例,都能输出正确的结果并停止,则称它是正确的,我们说一个正确的算法解决了给定的计算问题。不正确的算法对于某些输入来说,可能根本不会停止,或者停止时给出的不是预期的结果。然而,与人们对不正确算法的看法想反,如果这些算法的错误率可以得到控制的话,它们有时候也是有用的。但是一般而言,我们还是仅关注正确的算法!
第二分析算法的时间复杂度
算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的好坏。
④ 有三个整数a,b,c,由键盘输入,输出其中最大的数,画出其算法流程图.
热点内容
|