经典算法试题(一)

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

一、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、结果


目录
相关文章
|
3月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
46 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
8月前
|
算法
经典双指针算法试题(二)
经典双指针算法试题(二)
67 0
|
8月前
|
算法 容器
经典双指针算法试题(一)
经典双指针算法试题(一)
65 0
|
机器学习/深度学习 算法
经典算法试题(二)
经典算法试题(二)
115 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
104 0
|
4天前
|
算法 数据安全/隐私保护 计算机视觉
基于Retinex算法的图像去雾matlab仿真
本项目展示了基于Retinex算法的图像去雾技术。完整程序运行效果无水印,使用Matlab2022a开发。核心代码包含详细中文注释和操作步骤视频。Retinex理论由Edwin Land提出,旨在分离图像的光照和反射分量,增强图像对比度、颜色和细节,尤其在雾天条件下表现优异,有效解决图像去雾问题。
|
4天前
|
算法 数据可视化 安全
基于DWA优化算法的机器人路径规划matlab仿真
本项目基于DWA优化算法实现机器人路径规划的MATLAB仿真,适用于动态环境下的自主导航。使用MATLAB2022A版本运行,展示路径规划和预测结果。核心代码通过散点图和轨迹图可视化路径点及预测路径。DWA算法通过定义速度空间、采样候选动作并评估其优劣(目标方向性、障碍物距离、速度一致性),实时调整机器人运动参数,确保安全避障并接近目标。
|
13天前
|
算法 数据安全/隐私保护
室内障碍物射线追踪算法matlab模拟仿真
### 简介 本项目展示了室内障碍物射线追踪算法在无线通信中的应用。通过Matlab 2022a实现,包含完整程序运行效果(无水印),支持增加发射点和室内墙壁设置。核心代码配有详细中文注释及操作视频。该算法基于几何光学原理,模拟信号在复杂室内环境中的传播路径与强度,涵盖场景建模、射线发射、传播及接收点场强计算等步骤,为无线网络规划提供重要依据。

热门文章

最新文章