有这样的一个4位数abcd,它具有这样的性质abcd = (ab+cd) * (ab+cd)。其中ab和cd为两个2位数,求这个4位数abcd.
此题,我们可以使用穷举,我们知道四位数是从1000到9999,然后用四个变量分别代码千,百,十,个位。编写代码如下:
- #include <stdio.h>
-
-
void fun()
-
{
-
int a,b,c,d;
-
for(a=1; a<10; a++)
-
for(b=0; b<10; b++)
-
for(c=0; c<10; c++)
-
for(d=0; d<10; d++)
-
if(a*1000+b*100+c*10+d == ((a*10+b) + (c*10+d)) * ((a*10+b) + (c*10+d)))
-
printf("%d%d%d%d\t",a,b,c,d);
-
}
-
-
int main(int argc, char *argv[])
-
{
-
printf("there are following numbers according with the condition\n");
-
fun();
-
printf("\n");
-
return 0;
-
}
执行情况如下:
2025 3025 9801 peng@ubuntu:~/src/test/c/suanfa/miaoqu$ gcc 6.3.c
peng@ubuntu:~/src/test/c/suanfa/miaoqu$ ./a.out
there are following numbers according with the condition
2025 3025 9801
阅读(1459) | 评论(0) | 转发(0) |