蓝桥杯试题 E: 完美平方数
发布日期:2021-06-28 15:43:57 浏览次数:3 分类:技术文章

本文共 842 字,大约阅读时间需要 2 分钟。

试题 E: 完美平方数

本题总分:15 分

【问题描述】
如果整个整数 X 本身是完全平方数,同时它的每一位数字也都是完全平方
数,我们就称 X 是完美平方数。
前几个完美平方数是 0、1、4、9、49、100、144……
即第 1 个完美平方数是 0,第 2 个是 1,第 3 个是 4,……
请你计算第 2020 个完美平方数是多少?
【答案提交】
这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个
整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解:

暴力查找即可,但运行时间极长,因为数的大小过大。

当数字过大时我们也可以将大整数转换为字符串类型解决。

代码:

#include
using namespace std;long long i = 1;bool ser(int x){
int temp; while(x) {
temp = x%10; if(pow(temp,0.5)*pow(temp,0.5)!=temp)//此时一定为一个10以内的数的计算,所以此时是没有必要再加上int强制转换的,因为0-9不会出现下面那样的偶然情况 {
return 0; } x/=10; } return 1;}int main(){
int sum = 0; while(sum!=7) {
if(((int)pow(i,0.5))*((int)pow(i,0.5))!=i)//由于pow函数返回的是浮点型,所以不加int强制转换的话有可能两个pow相乘之后还是原数,如11 {
i++; continue; } if(ser(i)) {
sum++; i++; continue; } if(ser(i)==0)//要进行操作,不然会死循环 {
i++; } } cout<
<

转载地址:https://blog.csdn.net/xiangguang_fight/article/details/115716514 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:力扣213. 打家劫舍 II---环形变线形+dp
下一篇:蓝桥杯试题 C: 合并检测

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月04日 06时17分00秒