写一个辅助函数f来挨个判定即可,记得m和n都要包含,是闭区间
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int m = sc.nextInt(), n = sc.nextInt();
int r = 0;
for(int i = m; i <= n; ++i){
if(f(i)){
r++;
System.out.printf("%d ", i);
}
}
if(r == 0){
System.out.println("no");
continue;
}
System.out.println();
}
}
static boolean f(int n){
int r = 0, t = n;
while(t != 0){
int a = t%10;
r += (int)Math.pow(a, 3);
t /= 10;
}
if(r == n) return true;
return false;
}
}
京公网安备 11010502036488号