完美平方数
如果整个整数X本身是完全平方数,同时它的每一位数字也都是完全平方数,我们就称X是完美平方数。 前几个完美平方数是 0、1、4、9、100、144…
请你计算第 2020 个完美平方数是多少?
使用的软件:Visual Studio 2017
代码如下.
#include<iostream>
#include<cmath>
#include<string>
using namespace std;
bool perfect[20] = { false };
void fun()
{
int count = 0;
perfect[0] = 1;
perfect[1] = 1;
perfect[4] = 1;
perfect[9] = 1;
for (int i = 0; i <= 1000000000; i++)//i足够大以确保能有2020次完美平方数
{
int flag = 1;
int temp = i * i;
string str = to_string(temp);//整型转字符串型
int len = str.length();
for (int j = 0; j < len; j++)
{
int *num = new int[str.size()];
num[j] = str[j] - '0';//字符型转整型
if (!perfect[num[j]])//判断 temp(或str) 是否为 0,1,4,9组成
{
flag = 0;
break;
}
}
if (flag)
{
count++;
cout << count << endl; //等待过程无聊可以输出
}
if (count == 2020)
{
cout << temp << endl; //需要等待30秒左右
break;
}
}
}
int main()
{
fun();
return 0;
}
结果截图: