写在前面

在做编程题的过程中,发现有很多考察数学公式的编程题,这种题如果用数学解法将十分复杂,但使用一些公式的话,会特别简单,尤其是避免了一些数字的整形、浮点型转换,因而特开此篇用于总结数学公式,什么时候遇到了,就来更新一下~

目录:编程中的数学公式

  • 写在前面
    • 由三角形三边长求面积
    • 求两个数的最大公约数、最小公倍数

由三角形三边长求面积

设三角形三边长分别为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。

编程题涉及到的数学公式(持续更新……)相关推荐

  1. 2020美团(开水团)面试题真题整理最新最全~持续更新中~~~

    大家好我是好好学习天天编程的天天 一个整天在互联网上种菜和砍柴的程序员~ 如果我们每天关注互联网行业,也有心做程序员的话,我们可能进场会听到一些关键词:一东(时间单位),一度(市值单位,一个拼多多是几 ...

  2. CTF MISC在我眼里各种奇奇怪怪的题学习思路总结(持续更新)

    系列文章目录 MISC:图片隐写简单题学习思路总结(持续更新) CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.二维码 1.1 QR码 1.2 Maxicode码 ...

  3. CTF MISC图片隐写简单题学习思路总结(持续更新)

    系列文章目录 第一篇文章: CTF Crypto简单题学习思路总结(持续更新) 文章目录 系列文章目录 前言 一.JPG类隐写 1.1 JPG文件末尾添加字符串 1.2 JPG文件中添加字符串 1.3 ...

  4. 全国青少年软件编程(Scratch)等级考试一级考试真题2022年9月——持续更新.....

    1 .点击绿旗,下列哪个选项可以实现播放马叫声并在声音全部播放完后,马向右移动?( ) A. B. C. D. 正确答案:D 答案解析: 等待播完是指声音播完之后再执行后面的程序. 2 .角色Ben运 ...

  5. HDU杭电OJ经典100题2000-2099_Java版详细题解(持续更新)

    今年寒假打算用Java把杭电2000-2099全部AC(现在持续更新),如下是题目链接,之后是我的题解,全部做完后我会把所有AC的题解打包上传的 题号 题名 题号 题名 2000 ASCII码排序 2 ...

  6. ②【Java 组】蓝桥杯省赛真题解析 [振兴中华] [三部排序] 持续更新中...

    个人简介:Java领域新星创作者:阿里云技术博主.星级博主.专家博主:正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中... ...

  7. 【PAT】PAT甲级题库所有题解(持续更新中...)

    题解: 本文为导航页,一些希望刷PAT甲级的玩家可以来看看,我会持续更新所有题目的题解(取决于我做到哪儿了(doge)) 题号按照PAT官网给出的标注 题目: 链接 标签 1001 A+B Forma ...

  8. 全国青少年软件编程(Python)等级考试一级考试真题2023年5月——持续更新.....

    青少年软件编程(Python)等级考试试卷(一级) 一.单选题(共25题,共50分) 1.可以对Python代码进行多行注释的是?( ) A.# B." " C.''' ''' D ...

  9. 全国青少年软件编程(Scratch)等级考试一级考试真题2022年12月——持续更新.....

    1.小明想在开始表演之前向大家问好并做自我介绍,应运行下列哪个程序?( ) A. B. C. D. 正确答案:D 答案解析: 外观积木配合显示时间,才能看清楚内容. 2.舞台有两个不同的背景,小猫角色 ...

  10. 全国青少年软件编程(Scratch)等级考试一级考试真题2021年6月——持续更新.....

    202106Scratch一级真题 1.小猫位置在舞台中心,点击一次小猫后能前进10步的程序为?( ) A. B. C. D. 正确答案:B 答案解析: 2.快速切换到下一个背景图片应该使用哪个积木? ...

最新文章

  1. Vivado 随笔(1) 综合属性之 ram_style rom_style?
  2. maven项目转成web项目
  3. 图像质量损失函数SSIM Loss的原理详解和代码具体实现
  4. 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
  5. Linux 配置JAVA_HOME
  6. 更新ubuntu15.10内核后,驱动解决
  7. Javascript调试之console对象,它的一些小技巧你都知道吗?
  8. 【Elasticsearch】明明存在,怎么搜索不出来呢?
  9. AtCoder Beginner Contest 135 解题报告
  10. Java Serializable 序列化 与 对象克隆
  11. Linux电脑弹出网络认证,linux局域网Dr.COM宽带认证客户端上网指南
  12. 记一次现网k8s中pod连接数据库异常的问题分析及解决实践(tcp_tw_recycle与tcp_tw_reuse内核参数修改)
  13. Macbook 终端命令使用sudo时改用指纹解锁
  14. 程序闪退崩溃的几种原因
  15. 杭电Oj刷题(2027)
  16. Android开发入门教程pdf
  17. cad打印本计算机未配置,CAD打印的基本设置详细教程
  18. 澳大利亚维多利亚州旅游局力推高尔夫主题体验
  19. Linux 10GE端口,CR19000关于10GE端口切换GE口
  20. vue中父传子,父传孙说明

热门文章

  1. 阿里玄难:面向不确定性的软件设计几点思考
  2. 十进制和二十进制的转换
  3. 畅购9-Spring Security Oauth2 JWT
  4. 中国远程医疗行业发展前景预测和投资规划分析报告2022-2027年
  5. 论文笔记:Stacked Hourglass Networks for Human Pose Estimation
  6. unity实战:教你做黄豆君
  7. MySQL数据库学习资料(七)
  8. 详解KubeEdge边缘网络项目EdgeMesh
  9. 画出使用回溯法解0/1背包问题的解空间树
  10. MacOS 10.15编译openjdk8u详细过程