Java 查找每个数的总和为d且小于N的数的数

Java 查找每个数的总和为d且小于N的数的数,java,Java,我编写了一个代码,从小于N的数中找出每个数的和是d的数。编译完成,输入N和d成功。但在那之后,它就不起作用了。 我应该修复哪个部分以及如何修复`导入java.util.Scanner public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter the num1 : &quo

我编写了一个代码,从小于N的数中找出每个数的和是d的数。编译完成,输入N和d成功。但在那之后,它就不起作用了。 我应该修复哪个部分以及如何修复`导入java.util.Scanner

public class Main {
public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    
    System.out.print("Enter the num1 : ");
     int n = input.nextInt();
    System.out.print("Enter the num2 : ");
     int d = input.nextInt();
    int res=0;
    int sum=0;
    
    for(int i=1; i<=n; i++) {
       sum = 0;
     while(i>0) {
       sum += i%10;
       i /=10;
       }
     if(sum==d) {
       res++;
       }
    }
    System.out.println(res);
}

}问题在for循环中。在for循环的主体中,您正在更改不应该执行的变量i。这是解决办法

for(int i=1; i<=n; i++) {
   sum = 0;
   int j = i;
   while(j>0) {
     sum += j%10;
     j /=10;
   }
   if(sum==d) {
     res++;
   }
}

哇,我明白了。非常感谢。