- 题目地址
- 我的代码
int IsTheNumber(const int N)
{
int n = N, tn, jud = 0, mark = 0;
tn = (int)(sqrt((double)(n)));
//利用非完全平方整数,开方存在小数;double强行转int,将舍弃小数部分
if (tn*tn == n)
//若 tn平方后 等于 被开方数,说明n是完全平方整数(不存在舍弃的小数)
{
int a[10] = { 10,10,10,10,10,10,10,10,10,10 };
for (int i = 0; n != 0; i++)
{
a[i] = n % 10;
n /= 10;
mark++;
}
for (int w=0; w < mark; w++)
for (int i = 0; a[i] != 10; i++)
if (w != i && a[w] == a[i])
//判定至少有两位数字相同
jud = 1;
}
return jud;
}