“二十一天好习惯”第一期-7

前言:

老规矩还是来到每日一题的环节,昨天的Python题目稍微有点难,今天是一道C语言的思维基础题,且未涉及到任何算法,保证只要学过C语言都能理解

题目:

用代码编写下列推理过程:

一辆卡车违反交通规则,撞人后逃跑。

现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。

甲说:牌照的前两位数字是相同的;

乙说:牌照的后两位数字是相同的,但与前两位不同;

丙是数学家,他说:四位的车号刚好是一个整数的平方。

请根据以上线索找出车号

解析:

  此题让我们根据线索推理出车牌号,有点模拟的意思。很明显只要满足题目给的条件就能得出答案。但此题难点在于如何去用代码表示满足的条件。首先牌照前两位数字相同,且联想到车牌号四位可以把他看成一个有大小的四位数,这里姑且用i来表示车牌号前面两位相同的数字,同理再用j表示车牌号的后两位相同的数字。首先条件二可以立马得到代码:i ! = j 然后用k来表示车牌的四位数,把k看成一个有大小的数字,根据十进制按权相加就可以的到:k = i * 1000 + i * 100 + j * 10 + j,然后在满足前面两个条件下 最小的四位数车牌号为:0011,这里定义一个循环从m=3开始 因为3^2=9 刚好是比最小的0011的最小平方数,最后在满足:m * m <= k条件下 用嵌套循环即可找到答案。

代码实现:

#include <stdio.h>
int main()    
{              
	int i,j,k,m; 
	for (i = 0 ; i <= 9 ; i++)
	{
		for (j = 0 ; j <= 9 ; j++)
		{
			if ( i != j )
			{
				k = i * 1000 + i * 100 + j * 10 + j ;
				for (m = 3 ; m * m <= k ; m++)      
				{                                    
					if (m*m == k)
					{
						printf("车牌号为%d  \n",k);
					}
				}
			}
		}
	}
	return 0 ;
}

小结:

    其实本道题的难点只在于如何将题目给的条件公式化代码化,再按条件输出来就完成了,还有就是这么处理数据的问题,如本题的车牌号原本是个实际没有大小意义的号码,这里把它当成有大小的四位数来表示可以更好的锁定条件,只要满足题目所给的所有条件,此题答案便呼之欲出了。

最后在预告下明天的内容,大概率是蓝桥杯备战的题型分享了,敬请期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值