1.
int main(void)
{
int i, ii;
for (i = 0; i<100;i++)
{
ii = i*i;
if (ii/1000 == (ii/100%10) && (ii/10%10) == ii%10)
{
if (ii/1000 != (ii/10))
{
printf("i = %d\n", i);
printf("%04d ", ii);
}
}
}
}
2.
int main(void)
{
int i,sum = 0, t1,t2,t3;
for (i = 0; i < 8; i ++)
{
t1 = (i>>2) & 1;
t2 = (i>>1) & 1;
t3 = (i>>0) & 1;
sum = t1+t2+t3;
if (t1)
//如果第一个人讲的是真话
{
if (sum == 2)//则必有两个人是诚实族的
{
if(t2 || t3)//如果第二个人讲的是真话,则第三个人讲的也是真话,则共有三个人讲真话,且只有一个人讲真话(不可能的)
{
if (sum == 1 && sum == 3)
{
printf("%d %d %d\n", t1, t2, t3);
}
}else//后两个人讲假话,sum==1,且sum!=1(也不可能)
{
if (sum != 1 && sum == 1)
{
printf("%d %d %d\n", t1, t2, t3);
}
}
}
}else//第一个人讲的是假话
{
if (sum != 2)//sum必不等于2
{
if(t2||t3)//如果后两人讲的是真话,sum==1,且sum==2(不可能)
{
if (sum == 1 && sum == 2)
{
printf("%d %d %d\n", t1, t2, t3);
}
}else//如果后两人讲的是假话,sum==0,且sum!=1
{
if (sum == 0 && sum != 1)
{
printf("%d %d %d\n", t1, t2, t3);
}
}
}
}
}
}
第二个程序感觉怪怪的