经典算法试题(一)

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

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


目录
相关文章
|
2月前
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
37 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
7月前
|
算法
经典双指针算法试题(二)
经典双指针算法试题(二)
62 0
|
7月前
|
算法 容器
经典双指针算法试题(一)
经典双指针算法试题(一)
61 0
|
机器学习/深度学习 算法
经典算法试题(二)
经典算法试题(二)
110 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
102 0
|
18天前
|
算法
基于WOA算法的SVDD参数寻优matlab仿真
该程序利用鲸鱼优化算法(WOA)对支持向量数据描述(SVDD)模型的参数进行优化,以提高数据分类的准确性。通过MATLAB2022A实现,展示了不同信噪比(SNR)下模型的分类误差。WOA通过模拟鲸鱼捕食行为,动态调整SVDD参数,如惩罚因子C和核函数参数γ,以寻找最优参数组合,增强模型的鲁棒性和泛化能力。
|
24天前
|
机器学习/深度学习 算法 Serverless
基于WOA-SVM的乳腺癌数据分类识别算法matlab仿真,对比BP神经网络和SVM
本项目利用鲸鱼优化算法(WOA)优化支持向量机(SVM)参数,针对乳腺癌早期诊断问题,通过MATLAB 2022a实现。核心代码包括参数初始化、目标函数计算、位置更新等步骤,并附有详细中文注释及操作视频。实验结果显示,WOA-SVM在提高分类精度和泛化能力方面表现出色,为乳腺癌的早期诊断提供了有效的技术支持。
|
4天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。