您的位置:首页 > 其它

整数趣题(求具有abcd = (ab + cd)^2性质的四位数)

2015-01-24 23:46 453 查看
/****************************************
*  File Name  : integer.c
*  Creat Data : 2015.1.24
*  Author     : ZY
*****************************************/

/*整数趣题*/
/*求具有abcd = (ab + cd)^2性质的四位数*/
/*3025这个数具有一种独特的性质:将它平分成两段
,即30和25,使之相加后求平方和恰好等于3025本身
求具有这样性质的全部四位数。*/

/*方法一*/
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,m,n;
printf("There are following numbers with 4 digits satisfied condition:\n");
for( i = 1;i < 10;i++ )
{
for( j = 0;j < 10;j++ )
{
for( m = 0;m < 10;m++ )
{
for( n = 0;n < 10;n++ )
{
if((i*1000 + j*100 + m*10 + n )== pow((i*10 + j + m*10 + n),2))
{
printf("%10d",i*1000 + j*100 + m*10 + n);
}
}
}
}
}
printf("\n");
return 0;
}


/*方法二*/
#include <stdio.h>
#include <math.h>
int main()
{
int a[4],i,j,k;
printf("There are following numbers with 4 digits satisfied condition:\n");
for( i = 1000 ;i < 10000;i++ )
{
for( j = 0,k = 10000;k >= 10;j++ )
{
a[j] = (i%k)/(k/10);
k /= 10;
}
if((a[0]*1000 + a[1]*100 + a[2]*10 + a[3]) == pow((a[0]*10+a[1]+a[2]*10+a[3]),2))
{
printf("%10d",a[0]*1000 + a[1]*100 + a[2]*10 + a[3]);
}
}
printf("\n");
return 0;
}


/*方法三*/
#include <stdio.h>
int main()
{
int n,a,b;
printf("There are following numbers with 4 digits satisfied condition:\n");
for( n = 1000;n < 10000;n++ )
{
a = n/100;//截取N的前两位存于a
b = n%100;//截取N的后两位存于b
if((a + b)*(a + b) == n)
{
printf("%10d",n);
}
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐