本篇文章介绍一下使用php如何求最大奇约数的和。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11.
现在给出一个N,需要求出 f(1) + f(2) + f(3)…….f(N)
例如: N = 7
立即学习“PHP免费学习笔记(深入)”;
f(1) + f(2) + f(3) + f(4) + f(5) + f(6) + f(7) = 1 + 1 + 3 + 1 + 5 + 3 + 7 = 21
小易计算这个问题遇到了困难,需要你来设计一个算法帮助他。
>1;
if(($n&0x1) == 1){
$res+=$n;
break;
}
}
}
}
HELL:
return $res;
}
function jNum3($num){//公式法
if($num == 1){
return 1;
}
if(($num&0x1) == 0){
return jNum3($num>>1)+$num*$num/4;
}else{
return jNum3($num-1)+$num;
}
}
//$sum = 0;
//for($i = 1; $i<=$num; $i++){
// $sum+=jNum($i);
//}
//echo $sum;
//echo jNum2($num);
echo jNum3($num);开始常规思路,一直调试的方法1,一直超时,改为方法2,还是超时,没有什么本质区别。
换思路。。
感谢您选择使用ERMEB域名授权离线网络验证系统(简称:ERMEB域名授权系统)是ERMEB团队开发,ERMEB域名授权系统是国内最稳定,最强大,最先进的域名授权管理平台解决方案之一,ERMEB域名授权系统采用PHP +Mysql的技术,ERMEB域名授权系统框架使用Thinkphp6/mysql数据库基于Markdown开发者文档开发而成,项目安装请参考ThinkPHP官方文档及下面的服务环境说
求sum(i)的过程中,如果i 为奇数可以直接求,就是 i 本身,即f(i) = i。
问题就是求所有f(i), i为偶数的和。
因为是最大奇约数,所以f(2k) = f(k),所以f(2) + f(4) + … + f(2k) = f(1) + f(2) + … + f(k);
所以,数学归纳法,可以求出通用公式

这个做法还是不容易想到的。。。这么BT的题。。
本文转载自:https://blog.csdn.net/qq_28602957/article/details/77914402
推荐学习:PHP视频教程










