求一个不相等的四位数乘以一个数,等于该数的倒序值。
求此题,需要使用枚举进行操作。四位数互不相等,另外需要使用程序求出该四位数的倒序值。根据此两点,进行如下程序的编写:
- #include <stdio.h>
-
-
int reverse(int i)
-
{
-
int result = 0;
-
while(i)
-
{
-
result = result*10 + i%10;
-
i = i/10;
-
}
-
-
return result;
-
}
-
-
int fun(int i, int j)
-
{
-
int buf[4], k=0;
-
while(i)
-
{
-
buf[k] = i%10;
-
i = i/10;
-
k++;
-
}
-
-
if(buf[0] == buf[1]) return 0;
-
if(buf[0] == buf[2]) return 0;
-
if(buf[0] == buf[3]) return 0;
-
if(buf[1] == buf[2]) return 0;
-
if(buf[1] == buf[3]) return 0;
-
if(buf[2] == buf[3]) return 0;
-
if(buf[0] == j) return 0;
-
if(buf[1] == j) return 0;
-
if(buf[2] == j) return 0;
-
if(buf[3] == j) return 0;
-
-
return 1;
-
}
-
-
int main(int argc, char *argv[])
-
{
-
int i,j;
-
for(i=1000; i<10000; i++)
-
for(j=1; j<10; j++)
-
if(i*j == reverse(i) && fun(i,j))
-
{
-
printf("%d\n",i);
-
printf("* %d\n",j);
-
printf("---------\n");
-
printf("%d\n",i*j);
-
}
-
-
return 0;
-
}
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
2178
* 4
---------
8712
阅读(899) | 评论(0) | 转发(0) |