主题:找出满足下述条件的4位自然数
兔牙--
[专家分:10] 发布于 2008-11-17 09:27:00
编写程序,找出满足下述条件的4位自然数
1,该自然数是11的倍数
2,十位数和百位数的和等于千位数
3,百位数和十位数组成的两位自然数是一个完全平方数,例如,百位数为2,十位数为5,则25 是5的方,25是一个完全平方数
4,四位自然数的个位数字互不相同
这第四个条件看不懂
回复列表 (共13个回复)
沙发
兔牙-- [专家分:10] 发布于 2008-11-17 09:32:00
还有编写这个程序也不会
板凳
scaredkinght [专家分:5310] 发布于 2008-11-18 07:56:00
真不知道你是要求作业还是真不会
不过这样的题也太简单了吧,自己如果认真想肯定没问题的
3 楼
兔牙-- [专家分:10] 发布于 2008-11-18 08:15:00
public class Ziranshu
{
public static void main(String args[])
{
long number=0;
int Ge,Shi,Bai,Qian,t;
for(Ge>=0&&Ge<=9)
for(Shi>=0&&Shi<=9)
for(Bai>=0&&Bai<=9)
for(Qian>0&&Qian<=9)
{
number%11==0;
Shi+Bai=Qian;
ShiBai=t*t;
Ge!=Shi!=Bai!=Qian;
}
number=number+Qian*1000+Bai*100+Shi*10+Ge;
System.out.println("4位自然数是:"+number+);
}
}
我真不会呀,我编写出来运行不出来
我很笨的啦,对不起大家哦,让大家帮我回答那么简单的题目
4 楼
scaredkinght [专家分:5310] 发布于 2008-11-18 08:30:00
第四个条件我怀疑是每个数位上的数字都不相同
两位自然数为完全平方的只有16, 25, 36, 49, 64, 81,
然后根据第一个条件
符合条件的千, 百, 十位数只能是716, 725, 936, 981
然后根据某自然数奇数位数字之和减偶数位数字之和能整除11,则此自然数能整除11的性质,
可以发现只有
9360
9812
符合条件
关于你的代码,for循环好像有问题~~怎么看起来像while啊
还有这个 Ge!=Shi!=Bai!=Qian; //这是什么意思?java里面没有这样的写法吧?
5 楼
scaredkinght [专家分:5310] 发布于 2008-11-18 08:52:00
public class Ziranshu
{
public static void main(String args[])
{
int result = 0;
for(int i = 4; i != 10; ++i)
{
int placeTen = i * i % 10;
int placeHundred = i * i / 10;
int placeThousand = placeTen + placeHundred;
if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
{
int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
{
result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
System.out.println("result = " + result);
}
}
}
if(result == 0)
System.out.println("Can't find such number");
}
}
6 楼
兔牙-- [专家分:10] 发布于 2008-11-18 12:33:00
万分感谢
7 楼
兔牙-- [专家分:10] 发布于 2008-11-18 13:11:00
public class Ziranshu
{
public static void main(String args[])
{
int result = 0;
for(int i = 4; i != 10; ++i)
{
int placeTen = i * i % 10;
int placeHundred = i * i / 10;
int placeThousand = placeTen + placeHundred;
if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
{
int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
{
result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
System.out.println("result = " + result);
}
}
}
if(result == 0)
System.out.println("Can't find such number");
}
}
其中的 int placeTen = i * i % 10;
int placeHundred = i * i / 10;
int placeThousand = placeTen + placeHundred;
不懂什么意思哦
8 楼
scaredkinght [专家分:5310] 发布于 2008-11-18 23:21:00
因为十位和百位组成完全平方数
所以用i * i求出这个完全平方数
然后i * i % 10取其对10的模就是个位数字啊,也就是所求数的十位数
i * i / 10就是其十位数,也就是所求数的百位数
placeTen + placeHundred 求出了所求数的千位数
9 楼
兔牙-- [专家分:10] 发布于 2008-11-19 06:57:00
其中的“根据某自然数奇数位数字之和减偶数位数字之和能整除11,则此自然数能整除11的性质,
可以发现只有
9360
9812”
不懂 这是什么性质?
9360
9812
这两个数除11除不掉的。不能整除诶
10 楼
兔牙-- [专家分:10] 发布于 2008-11-19 07:04:00
public class Ziranshu
{
public static void main(String args[])
{
int result = 0;
for(int i = 4; i != 10; ++i)
{
int placeTen = i * i % 10;
int placeHundred = i * i / 10;
int placeThousand = placeTen + placeHundred;
if(placeThousand < 10 && placeThousand != placeTen && placeThousand != placeHundred)
{
int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
if(placeUnit < 10 && placeUnit != placeTen && placeUnit != placeHundred && placeUnit != placeThousand)
{
result = placeUnit + 10 * placeTen + 100 * placeHundred + 1000 * placeThousand;
System.out.println("result = " + result);
}
}
}
if(result == 0)
System.out.println("Can't find such number");
}
}
其中的int placeUnit = (placeThousand + placeTen - placeHundred) % 11;
不懂怎么理解
我来回复