首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mini_program02·完全平方数

龚老师带你玩转编程世界!《mini_program》经典且简单的例题。通过简单的例题来巩固拓展编程知识。

一、背景

一、完全平方数

有一个十万内的整数,它加上100后是一个完全平方数,加上168后又是一个完全平方数,请问该数是多少?【完全平方指一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。】(龚老师提示:照顾小学知识点未知的情况,点名:平方)

二、解法分析

设计到数学概念的题目往往会一瞬间失神,题目说的是个什么东西?这种题目就是谁怕谁的事儿,你被吓住了你就输了,当然你没怂的话,你就发现了题目关键:平方。

题目的意思其实是,一个数加上100能开平方,加上168仍旧能开平方。开平方的函数我们记得,是sqrt()函数。只要能被sqrt成为整数,那么就是个对的值。如果某个数开平方的结果相乘,答案还是那个数,这个数就是平方数。【照顾小学群体,就像减法,大蛋糕切开来,如果被切过的小蛋糕拼起来是大蛋糕,说明这块蛋糕是“完全平方数”。】

仍旧用我们穷举法,把所有的数字给罗列一遍。既然是十万内,那么我就循环十万次来找答案!判断条件需要我们加工一下,首先把加上100的开方结果和加上168的开方结果算出来,然后判断得到的两个结果是否是对的值。

三、代码及输出

c++版本:

pascal 版本:

四、要点回顾

本题利用到的编程知识点其实不难,运用了穷举思想的循环,并在每次循环时对循环变量进行加工,判断是否满足所找的数要求。循环+判断!

这里运用了一个数学函数——sqrt(),计算机智能的帮我们把数开了平方,【把大蛋糕切开了】,因此在c++中,需要额外的外部库,需要提起通知计算机把math.h这个头文件包括进来,因为sqrt在math.h里呀!

额外的,需要注意因为数字到了十万这个级别,你确保数字的取值范围没有问题吗?所以,c++中,我们运用了long int这个长整数类型来规避超过范围。但在pascal中,long int不能满足题目,因为sqrt的结果可能存在小数,我们需要匹配上准确的范围,因此用了x,y实数类型变量,real。

六、最后

多思考,多动手。闭上眼睛想一想本题运用到的知识点,循环-->判断-->关系运算符&&逻辑运算符。

重要的是,碰到不熟悉的内容可千万别怂哦!

你学会了吗?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181018G1MHVP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券