经典算法试题(一)

文章目录

  • 一、19头牛
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 二、分钱
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 三、儿子做题
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 四、乐队人数
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 五、靶子趣谈
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 六、里程碑
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果
  • 七、位等差
    • 1、题目
    • 2、思路讲解
    • 3、代码实现
    • 4、结果



一、19头牛

1、题目


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


2、思路讲解

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


3、代码实现

经典算法试题(一)_第1张图片


4、结果

经典算法试题(一)_第2张图片


二、分钱

1、题目

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


2、思路讲解

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


3、代码实现

经典算法试题(一)_第3张图片


4、结果

经典算法试题(一)_第4张图片


三、儿子做题

1、题目

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


2、思路讲解

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


3、代码实现

经典算法试题(一)_第5张图片


4、结果

经典算法试题(一)_第6张图片


四、乐队人数

1、题目

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


2、思路讲解

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


3、代码实现

经典算法试题(一)_第7张图片


4、结果

经典算法试题(一)_第8张图片


五、靶子趣谈

1、题目

战士们做了一个靶子,靶子分五格,中心是39环,从左起顺时针是23、17、24 、16。
战士小李射了若干枪,每一次都击中靶子,并且正好是100环。问他打了几枪?每枪多小环?


2、思路讲解

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


3、代码实现

经典算法试题(一)_第9张图片


4、结果

经典算法试题(一)_第10张图片


六、里程碑

1、题目

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


2、思路讲解

分析:从题意中可知每对数仅用了两个不同的数字,并且两个数字之和衡等于9.并且,每对数之和也应衡等于999.
该解法利用三重循环分别求出每个数字的各位数.因为每个数最多只用两个不同的数字,所以每个数中至少有2个数字是相同的.再根据两个不同数字之和衡等于9,不难得出如下求解过程


3、代码实现

经典算法试题(一)_第11张图片


4、结果

经典算法试题(一)_第12张图片


七、位等差

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、代码实现

经典算法试题(一)_第13张图片


4、结果

经典算法试题(一)_第14张图片


你可能感兴趣的:(经典算法试题,算法)