请在小于99999的正整数中找符合下列条件的数,它既是完全平方数,又有两位数字相同,如:144,676。
#include <iostream>
using namespace std;
#include <math.h>
bool isSqrt(double num)//判断是否完全平方数
{
int k = sqrt(num);
if (k * k == num)
return true;
else
return false;
}
bool isRepeat(int num)//判断是否有两位数字相同
{
int a[10];
memset(&a, 0, sizeof(a));
while (num)
{
a[num % 10]++;//个十百位上的数分别放入对应编号的数组
num = num / 10;
}
for (int i = 0; i < sizeof(a) / sizeof(int); i++)
{
if (a[i] == 2)
return true;
}
return false;
}
int main()
{
for (int i = 1; i < 99999; i++)
{
if (isSqrt(i) && isRepeat(i))
printf("%d\n", i);
}
return 0;
}