经典算法试题(一)

简介: 经典算法试题(一)

一、19头牛

1、题目


有一个老人在临死前把三个儿子叫到跟前,告诉他们把19头牛分了,老大分1/2,老二分1/4,老三分1/5,说完就死了.按当地习俗,不能宰牛.问三个儿子各能分多少?


2、思路讲解

由于19与2、4、5都不能整除,所以就不能用平常的方法来解决这个问题。但是,如果仔细一点就可以发觉到:1/2+1/4+1/5=19/20,而牛的数量刚好为19。由此,就不难得出该问题的解决办法。


3、代码实现


4、结果


二、分钱

1、题目

一元钱分成1分、2分、5分的,问有多少种分法?


2、思路讲解

以五分,两分双重循环,如果总钱小于1元,则为一种分发


3、代码实现


4、结果


三、儿子做题

1、题目

父亲对儿子说:"做对一道题给8分,做错一道题扣5分."做完26题后,儿子得0分,问儿子做对了几题?


2、思路讲解

i为作对的题数,26-i为作错的题数,如果8乘以i 减去(26-i)乘以5等于0,就成立。


3、代码实现


4、结果


四、乐队人数

1、题目

在爱尔兰守神节那天,举行每年一度的庆祝游戏,指挥者若将乐队排成10人、9人、8人、7人、6人、5人、4人、3人和2人时,最后的一排总是缺少一个人,那些人想这个位置大概是给数月前死去的乐队成员凯西还留着位置。指挥者见到总缺一人恼火了,叫大家排成一列纵队前进。假定人数不超过7000人,那么乐队究竟有多少人?


2、思路讲解

第一重循环i从9开始循环一直到7000,双重循环开始,第二重循环j从9开始,到2结束,如果,j能到1,就条件成立


3、代码实现


4、结果


五、靶子趣谈

1、题目

战士们做了一个靶子,靶子分五格,中心是39环,从左起顺时针是23、17、24 、16。

战士小李射了若干枪,每一次都击中靶子,并且正好是100环。问他打了几枪?每枪多小环?


2、思路讲解

不用全部循环,可以找最后一个变量在结果中必须满足什么条件,令其符合即可,本例中剩余的环数就应该被16整除,得得的数救赎16环的枪数


3、代码实现


4、结果


六、里程碑

1、题目

甲、乙两个城市有一条999公里长的公路。公路旁每隔一公里竖立着一个里程碑,里程碑的半边写着距甲城的距离,另半边写着距乙城的距离。有位司机注意到有的里程碑上所写的数仅用了两个不同的数字,例如000/999仅用了0和9,118/881仅用了1和8。算一算具有这种特征的里程碑共有多少个,是什么样的?


2、思路讲解

分析:从题意中可知每对数仅用了两个不同的数字,并且两个数字之和衡等于9.并且,每对数之和也应衡等于999.

该解法利用三重循环分别求出每个数字的各位数.因为每个数最多只用两个不同的数字,所以每个数中至少有2个数字是相同的.再根据两个不同数字之和衡等于9,不难得出如下求解过程


3、代码实现


4、结果


七、位等差

1、题目

一个四位数,其千位、百位、十位数字依次组成等差数列,百位上的数字是个位、千位数字的等比中项,把该四位数的数字反序所得数与原数的和为11110。求原四位数。


2、思路讲解

分析:设该四位数为abcd,则由"其千位、百位、十位数字依次组成等差数列"可得(其中x为等差系数):

b=a+x (1)

c=a+2x (2)
再由"百位上的数字是个位、千位数字的等比中项"可得:
a
d=bb (3)
由(1)、(3)可得:
a
d=(a+x)*(a+x) (4)


3、代码实现


4、结果


目录
相关文章
|
5月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
62 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
10月前
|
算法
经典双指针算法试题(二)
经典双指针算法试题(二)
72 0
|
10月前
|
算法 容器
经典双指针算法试题(一)
经典双指针算法试题(一)
69 0
|
机器学习/深度学习 算法
经典算法试题(二)
经典算法试题(二)
123 0
|
存储 机器学习/深度学习 算法
【java_蓝桥杯算法训练 】试题 算法训练 阶乘
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。   输入格式:输入只有一个整数n
112 0
|
2天前
|
算法 数据可视化 调度
基于NSGAII的的柔性作业调度优化算法MATLAB仿真,仿真输出甘特图
本程序基于NSGA-II算法实现柔性作业调度优化,适用于多目标优化场景(如最小化完工时间、延期、机器负载及能耗)。核心代码完成任务分配与甘特图绘制,支持MATLAB 2022A运行。算法通过初始化种群、遗传操作和选择策略迭代优化调度方案,最终输出包含完工时间、延期、机器负载和能耗等关键指标的可视化结果,为制造业生产计划提供科学依据。
|
3天前
|
算法 安全 数据安全/隐私保护
基于BBO生物地理优化的三维路径规划算法MATLAB仿真
本程序基于BBO生物地理优化算法,实现三维空间路径规划的MATLAB仿真(测试版本:MATLAB2022A)。通过起点与终点坐标输入,算法可生成避障最优路径,并输出优化收敛曲线。BBO算法将路径视为栖息地,利用迁移和变异操作迭代寻优。适应度函数综合路径长度与障碍物距离,确保路径最短且安全。程序运行结果完整、无水印,适用于科研与教学场景。
|
4天前
|
机器学习/深度学习 数据采集 算法
基于yolov2和googlenet网络的疲劳驾驶检测算法matlab仿真
本内容展示了基于深度学习的疲劳驾驶检测算法,包括算法运行效果预览(无水印)、Matlab 2022a 软件版本说明、部分核心程序(完整版含中文注释与操作视频)。理论部分详细阐述了疲劳检测原理,通过对比疲劳与正常状态下的特征差异,结合深度学习模型提取驾驶员面部特征变化。具体流程包括数据收集、预处理、模型训练与评估,使用数学公式描述损失函数和推理过程。课题基于 YOLOv2 和 GoogleNet,先用 YOLOv2 定位驾驶员面部区域,再由 GoogleNet 分析特征判断疲劳状态,提供高准确率与鲁棒性的检测方法。