C++初级算法第二天
大家好!
今天我们来学习第二天的算法,很高兴第一天的文章有几位同学喜欢,希望能够继续支持我!
我会坚持将这一个专栏继续写下去的
好了,现在就来学习今天的第一个算法:
<一>
题目:青蛙王子
一个王子被巫师诅咒,变成了一只青蛙。500年后的一天,青蛙王子碰到了一个仙女,仙女告诉他,
如果他能通过一个简单的测试,她就能帮他解除诅咒。测试是这样子的,
仙女要青蛙王子在一条直线上跳跃(青蛙王子最开始站在坐标为0的地方),
但只能按照她给定的两种长度跳跃(假设这两种长度王子都能跳到),可以往前或者往后跳,
如果能达到指定的地点,那么就通过测试;仙女给定的方式有多种,但有些是不可能满足达到指定地点的。
请你帮帮可怜的青蛙王子,寻找出那些可以完成测试的跳跃方式。
分析:我们输入三个正整数,模拟青蛙王子的条约规则,满足条件则输出YES,否则输出NO,输入三个0表示结束
源代码图
以上就是实现青蛙王子的代码实现部分,在代码的顶部,我们定义了五个变量,分别存储了青蛙的跳跃距离a,b和路程c,中间变量temp,和用于存储最小变量的min
两个while来判断数据,先开始对数据的处理,后跳出内部的循环,将判断的结果输出
<二>
题目:海明距离
海明距离是在指二进制情况下,一个整数变成另外一个整数需要翻转的位数。比如2转换到3需要翻转1位,所以2到3的海明距离是1。给你两个正整数x和y,(x,y<=1,000,000,000),求它们的海明距离。
分析:把两个十进制数字转化成对应的二进制数字,然后比较,若是不同,则K+1,最后我们输出结果K
源代码图<三>
题目:素数判断
给一个int类型的数据,判定他是否为素数。
分析:利用穷举法,判定是否素数
源代码图这个算法的实现其实很简单,我们先定义了两个变量,一个用来存储输入的数据,一个用来遍历数据到2之间的距离。
我们在遍历的数字中寻找是否部分和素数的条件,一旦条件成立,我们就跳出循环,在循环体外判断是否为素数,如果是素数,遍历会完全的运行,b==i就,等于输入的数据为素数