编程题涉及到的数学公式(持续更新……)
写在前面
在做编程题的过程中,发现有很多考察数学公式的编程题,这种题如果用数学解法将十分复杂,但使用一些公式的话,会特别简单,尤其是避免了一些数字的整形、浮点型转换,因而特开此篇用于总结数学公式,什么时候遇到了,就来更新一下~
目录:编程中的数学公式
- 写在前面
- 由三角形三边长求面积
- 求两个数的最大公约数、最小公倍数
由三角形三边长求面积
设三角形三边长分别为a,b,c,则三角形面积
S=p(p−a)(p−b)(p−c)S=\sqrt{p(p-a)(p-b)(p-c)}S=p(p−a)(p−b)(p−c)其中,p=a+b+c2p=\frac{a+b+c}{2}p=2a+b+c
求两个数的最大公约数、最小公倍数
最大公约数
1、暴力求法:直接从小的数开始往下一个一个除,到1为止,如果能被a,b同时整除,则最大公约数找到,代码如下
int gcd(int a,int b){int x;for(int i=min(a,b);i>0;i--){if(a%i==0&&b%i==0) {x=i;break;}}return x;
}
2、辗转相除法(欧几里得算法)
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止.那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数).
例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0.
1515和600的最大公约数是15.
代码如下
int gcd(int a,int b){int temp=1;while(temp){temp=a%b;a=b;b=temp;}return a;
}
最小公倍数
如果求出了最大公约数,再求最小公倍数就十分简单了,用两个数相乘,除以最大公约数即可得到最小公倍数。
若a,b两数的最大公约数为x,则最小公倍数y=a∗bxy=\frac{a*b}{x}y=xa∗b
一个小tip:
在做题时,有时要求的数比较大,可以把数据类型改为unsigned long long int。
编程题涉及到的数学公式(持续更新……)相关推荐
- 2020美团(开水团)面试题真题整理最新最全~持续更新中~~~
大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 如果我们每天关注互联网行业,也有心做程序员的话,我们可能进场会听到一些关键词:一东(时间单位),一度(市值单位,一个拼多多是几 ...
- CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)
系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...
- CTF MISC图片隐写简单题学习思路总结(持续更新)
系列文章目录 第一篇文章: CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.JPG类隐写 1.1 JPG文件末尾添加字符串 1.2 JPG文件中添加字符串 1.3 ...
- 全国青少年软件编程(Scratch)等级考试一级考试真题2022年9月——持续更新.....
1 .点击绿旗,下列哪个选项可以实现播放马叫声并在声音全部播放完后,马向右移动?( ) A. B. C. D. 正确答案:D 答案解析: 等待播完是指声音播完之后再执行后面的程序. 2 .角色Ben运 ...
- HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)
今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的 题号 题名 题号 题名 2000 ASCII码排序 2 ...
- ②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...
个人简介:Java领域新星创作者:阿里云技术博主.星级博主.专家博主:正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中... ...
- 【PAT】PAT甲级题库所有题解(持续更新中...)
题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...
- 全国青少年软件编程(Python)等级考试一级考试真题2023年5月——持续更新.....
青少年软件编程(Python)等级考试试卷(一级) 一.单选题(共25题,共50分) 1.可以对Python代码进行多行注释的是?( ) A.# B." " C.''' ''' D ...
- 全国青少年软件编程(Scratch)等级考试一级考试真题2022年12月——持续更新.....
1.小明想在开始表演之前向大家问好并做自我介绍,应运行下列哪个程序?( ) A. B. C. D. 正确答案:D 答案解析: 外观积木配合显示时间,才能看清楚内容. 2.舞台有两个不同的背景,小猫角色 ...
- 全国青少年软件编程(Scratch)等级考试一级考试真题2021年6月——持续更新.....
202106Scratch一级真题 1.小猫位置在舞台中心,点击一次小猫后能前进10步的程序为?( ) A. B. C. D. 正确答案:B 答案解析: 2.快速切换到下一个背景图片应该使用哪个积木? ...
最新文章
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
- maven项目转成web项目
- 图像质量损失函数SSIM Loss的原理详解和代码具体实现
- 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
- Linux 配置JAVA_HOME
- 更新ubuntu15.10内核后,驱动解决
- Javascript调试之console对象,它的一些小技巧你都知道吗?
- 【Elasticsearch】明明存在,怎么搜索不出来呢?
- AtCoder Beginner Contest 135 解题报告
- Java Serializable 序列化 与 对象克隆
- Linux电脑弹出网络认证,linux局域网Dr.COM宽带认证客户端上网指南
- 记一次现网k8s中pod连接数据库异常的问题分析及解决实践(tcp_tw_recycle与tcp_tw_reuse内核参数修改)
- Macbook 终端命令使用sudo时改用指纹解锁
- 程序闪退崩溃的几种原因
- 杭电Oj刷题(2027)
- Android开发入门教程pdf
- cad打印本计算机未配置,CAD打印的基本设置详细教程
- 澳大利亚维多利亚州旅游局力推高尔夫主题体验
- Linux 10GE端口,CR19000关于10GE端口切换GE口
- vue中父传子,父传孙说明