初学Java,下面的水仙花数int那段可以像这样写吗?是格式错了吗?谢谢解答。
public class ConversionDemo{
public static void main(String[]args){
for(int i=100;i<=999;i++){
int a=i%=10;
int b=i/=10;
int c=b%=10;
int d=i/100;
if(a*a*a+c*c*c+d*d*d==i){
System.out.println(i);
}
}
}
}
int a =i%=10相当于int a=i=i%10;a的值是被赋予了i%10但是i的值也被改变了也变成i%10后的值了。后面的运算都是基于改变后的i的值算的,所以格式错了,改成int a=i%10
你这整体取值都不对,相当于变相给i也改了值代码可改为以下:
public static void main(String[] args) {
for (int i = 100; i <= 999; i++) {
int a = i / 100; //取百位
int b = i / 10 % 10; //取十位
int c = i % 10; //取个位
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == i) {
System.out.println(i);
}
}
}
for(int i=100;i<=999;i++){
int a = i%10;
int b = i/10;
int c = b%10;
int d = i/100;
if(a*a*a+c*c*c+d*d*d==i){
System.out.println(i);
}
}