本文目录一览:
- 1、怎么求一组数的最大奇因数之和
- 2、PHP中如何使用foreach循环遍历数组求6、8、10、4、3中的最大值和最小值?
- 3、python求最大公约数和最小公倍数
- 4、PHP如何求最大公约数与最小公倍数
- 5、在一个php数组中,里面有(78.65.28.35等)求最大值和最小值,(不能用max等函数)
怎么求一组数的最大奇因数之和
有一种叫辗转相除法
两个整数的最大公约数等于“其中较小的数”和“两数的差”的最大公约。
例如,252和105的最大公约数是21(252 = 21 × 12;105 = 21 × 5
因为两数之差252 − 105 = 147
147和105的最大公约数是21.所以252和105的最大公约数是21
还可以继续辗转下去
147和105的最大公约数就是
147-105=42与105的最大公约数
继续辗转
42与105的最大公约数就是
105-42=63与42的最大公约数,这是很明显就看出是21 了
PHP中如何使用foreach循环遍历数组求6、8、10、4、3中的最大值和最小值?
不需要使用
foreach
就能从数组
6、8、10、4、3
求出最大最小值,可以使用以下代码:
12345678?php $a = array(8,40,3,5,6,10);sort($a, SORT_NUMERIC);//最小值$min = reset($a);//最大值$max = end($a);
所需知识点:
数组排序函数
sort
数组游标
python求最大公约数和最小公倍数
不知道神马叫辗转相除法,直接用for:
#python3
import re
inp = input('Please input two integers: ')
a, b = [int(i) for i in re.findall(r'\d+', inp)]
def gys(m, n):
if m == 1 or m == n:
return m
for i in range(min(m, n), 0, -1):
if m%i == 0 and n%i == 0:
return i
g = gys(a, b)
print('最大公约数: ', g)
print('最小公倍数: ', a*b//g)
$ python3 gys.py
Please input two integers: 99 36
最大公约数: 9
最小公倍数: 396
PHP如何求最大公约数与最小公倍数
//求最大公约数
function max_divisor($a,$b)
{
$n = min($a, $b);
for($i=$n; $i1; $i--)
{
if (is_int($a/$i)is_int($b/$i))
{
return $i; //此处如果用echo $i;则输出结果为432;故应区分echo、return的区别
}
}
return 1;
}
//求最小公倍数
function min_multiple($a, $b)
{ if($b==0) //一定要考虑除数不能为零
{
return $b;
}else{
$m = max($a, $b);
$n = min($a, $b);
for($i=2; ; $i++)
{
if (is_int($m*$i/$n))
{
return $i;
}
}
}
return $a*$b;
}
//辗转相除法求最大公约数
function max_divisor2($a, $b)
{
if($b==0)
{
return $a;
}
else
{
return max_divisor2($b,($a%$b));
}
}
//加减法求最大公约数
function max_divisor3($a, $b)
{
if ($a == $b)
{
return $a;
}
elseif($a $b)
{
$a = $a-$b;
}
else
{
$b = $b-$a;
}
return max_divisor3($a, $b);
}
在一个php数组中,里面有(78.65.28.35等)求最大值和最小值,(不能用max等函数)
扫描一遍就可以获得最大值、最小值、平均值,扫描数组使用foreach,下面是例子代码:
?php
$arr = array(78, 65, 28, 35);
$max=$arr[0];
$min=$arr[0];
$sum=0;
$num=0;
foreach ($arr as $x){
if ($x$max) $max=$x;
if ($x$min) $min=$x;
$sum+=$x;
$num++;
}
$avg=$sum/$num;
echo "最大值{$max},最小值{$min},平均值{$avg}";
?