水仙花数100-999,请问我哪里错了,为什么

package com.company;

import java.util.Scanner;

public class Star_1 {
public static void main(String[] args) {

    for (int i = 100; i <= 999; i++) {

        int b = i / 100;
        i%=100;
        int s =  i/ 10;
        int g = i % 10;


        if ((b * b * b) + (s * s * s) + (g * g * g) == i) {
            System.out.println(b * 100 + s * 10 + g);
        }

            }


        }

    }

public static void main(String[] args) {
        for (int i = 100; i <= 999; i++) {
            int b = i / 100;
            int s =  i % 100 / 10;
            int g = i % 10;
            if ((b * b * b) + (s * s * s) + (g * g * g) == i) {
                System.out.println(b * 100 + s * 10 + g);
            }
        } 
    }

i%=100; 这句出问题了,你修改了循环变量值啊。同样后面if语句也会错误判断,因为i已经不是循环变量i的值啦
改为
int b = i / 100;
int s = i/ 10%10;
int g = i % 10;