php定义求约数函数,使用PHP求最大奇约数的和
本篇文章介绍一下使用PHP如何求最大奇约数的和。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
小易是一个数论爱好者,并且对于一个数的奇数约数十分感兴趣。一天小易遇到这样一个问题: 定义函数f(x)为x最大的奇数约数,x为正整数。 例如:f(44) = 11.
现在给出一个N,需要求出 f(1) + f(2) + f(3)…….f(N)
例如: N = 7
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,还是超时,没有什么本质区别。
换思路。。
求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视频教程
php定义求约数函数,使用PHP求最大奇约数的和相关推荐
- 输入精度e,使用格雷戈里公式求π的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funpi(e)求π的近似值。
输入格式: 输入在一行中给出精度e. 输出格式: 对每一组输入,在一行中输出π的近似值. 输入样例: 0.0001 结尾无空行 输出样例: pi = 3.141793 结尾无空行 编写代码 #incl ...
- matlab怎么求ln函数,用matlab求函数e的1+ln[erf(1/t)]+t次方对t的积分求详细编程过程...
答:syms t; f = exp(1+log(1/t)+t); int(f,t) 希望对你有帮助! 答:没有精确解,试试数值解吧 答:不可以,这个没有原函数的. 答:1.双击matlab软件图标,打 ...
- 遗传算法求三元函数极值(python)-采用二进制编码
想看实数编码编码的 博客地址遗传算法求三元函数极值(python)-采用实数编码 * 遗传算法求三元函数极值(python)-采用二进制编码 本文的遗传算法采用二进制编码求三元函数极值 所求函数为 要 ...
- jiegputo matlab转置,matlab实现用免疫克隆算法求二元函数的最优值(附源码)
用免疫克隆算法求二元函数的最优值 求下面函数的最小值(最优解) Goldstein-Price函数: f1(x)=[1+(x1+x2+1)2(19-14x1+3x12-14x2+6x1x2+3 ...
- 遗传算法求三元函数极值(python)-采用实数编码
遗传算法求三元函数极值(python)-采用实数编码 想看二进制编码编码的博客地址在这 遗传算法求三元函数极值(python)-采用二进制编码 本文的遗传算法采用实数编码求三元函数极值 所求函数为 ` ...
- 最大奇约数(c++实现)
一.若求一个数 N 的最大奇约数 t 若 N 为奇数,则 t=N ; 若 N 为偶数,则 mid=N/2,if mid 为奇数 则 t=mid if mid 为偶数 则重复循环,知道mid为奇数 二. ...
- c语言学习-定义并调用函数求两个整数之差的绝对值
定义并调用函数求两个整数之差的绝对值 程序流程图: 代码: #include<stdio.h> int fabs(int m ,int n) {int f; f=m-n; if(f< ...
- 定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能
定义两个同名的重载函数,分别求矩形和圆的周长,然后在main函数中对这两个函数进行调用并测试其功能. 求矩形的周长时需要输入矩形的长和宽:求圆的周长时需要输入圆的半径. #include<ios ...
- python求三个整数最大值_python 练习题:定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值。...
此题比较简单,不做过多说明. 值得注意的是如何用一行代码让用户一次性输入为多个变量赋值 Python # 定义一个getMax()函数,返回三个数(从键盘输入的整数)中的最大值. def getMax ...
最新文章
- ssh免密登录配置(两行命令搞定)
- 流程图的制作技巧分享,手把手教你如何画流程图?
- 基于python的螺纹钢28分钟策略
- 发现你的身形——OpenCV图像轮廓
- 防止UI界面被输入法遮挡(画面随输入法自适应)
- 【绝对有用】Syntax error on token “throws“, @ expected after this token
- vi 搜索命令_vi或vim如何查询关键字
- 重磅!Python又第一了!网友:为什么找不到好工作?真相让人脸红…
- ip netns的使用及network namespace 简介
- python爬取小说项目概述_Python实战项目网络爬虫 之 爬取小说吧小说正文
- 为什么我们需要再给 Firefox 一次机会?
- 你还不会小程序啊?手把手带你做第一个和服务器交互的小程序
- xcodebuild命令行打包发布ipa
- Crystal Ball—蒙地卡罗仿真软件
- 2019 vs 查看类图结构_在建筑网站上使用单页设计还是多页设计哪个更好_学云网...
- 怎么用计算机算lg多少是一个数,数学lg怎么算
- win10 软件移动位置信息服务器,如何修改win10软件默认安装位置
- [附源码]Python计算机毕业设计电脑配件仓储后台管理系统
- 国际标准电话和手机号码的正确写法
- HDU1000题纪念