是取模得出个十百位数字上的问题:
建立这样写,思路比较清晰。
public class Test{
public static void main(String[] args){
int gewei;
int shiwei;
int baiwei;
int lifang;
for(int i=100;i<1000;i++) {
gewei = i%10;
shiwei = (i%100-gewei)/10;
baiwei = (i-shiwei*10-gewei)/100;
lifang = gewei*gewei*gewei+shiwei*shiwei*shiwei+baiwei*baiwei*baiwei;
if(lifang == i) {
System.out.println("Value=" + i );
}
}
}
}
sum的值你在for循环里面置零吧。不然你的sum值一直就加上去了的。
sum的问题。一次循环结束后sum应赋为0.
public class unite2_10
{
public static void main(String args[])
{
int a,sum=0,m=0;
for(int i=100;i<=999;i++)
{
m=i;
while(i!=0)
{
a=i%10;
sum+=a*a*a;
i=i/10;
}
if(m==sum)
{
System.out.println(sum);
}
sum=0;
}
}
}
水仙花数程序存在两个问题:
1.每个数的判断,sum需要再for里面重新置0;
2不要再循环中改变要判断的i值,这个影响for循环的自加.
修改如下:
public class unite2_10 {
public static void main(String args[]) {
int a, sum = 0, m = 0;
for (int i = 100; i <= 999; i++) {
sum = 0;
m = i;
while (m != 0) {
a = m % 10;
sum += a * a * a;
m = m / 10;
}
if (i == sum) {
System.out.println(sum);
}
}
}
}
不晓得