C语言 一题,求答案

来源:百度知道 编辑:UC知道 时间:2024/04/27 02:36:53
100-999中的三位数,找出满足如下条件的数,放入result[]中.
1.完全平方数
2.个位,十位,百位中,有 两个是相同的数.

这个要想效率高,最好分两种情况去做,第一个,先把符合条件1,而且不符合条件2的找出来。

int result[1000];
int count = 0;
int isRight(int i)
{
int a,b,c;
a=i/100;
b = (i%100)/10;
c = i%10;
if(a==b || b==c || a==c)
{
return 0;
}
else
{
return 1;
}
}

//加入符合条件1不符合条件2的数
for(i=10; i<32; i++)
{
if(isRight(i*i))
{
result[count] = i*i;
count ++;
}
}
// 加入符合条件2的数
for(i=1; i<10; i++)
{
for(j=0; j<10; j++)
{
for(k=0; k<10; k++)
{
if(i==j || j==k || i==k)
{
result[count] = i*i;
count ++;
}
}
}
}
//提示到这里你再不会写,换专业吧

楼上的思路很好
下面的的提示,我不太赞同

呵呵,楼上的思路写的不错,说的也比较好,不要老是依靠别人