import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int n = in.nextInt(); for(int i = 1; i <= n; i++){ boolean include = ifinclude(i); if(i % 4 != 0 && include == false){ System.out.println(i); } } } } public static boolean ifinclude(int i){ String string = String.valueOf(i); int num = string.length(); for(int j = 0; j < num; j++){ char c = string.charAt(j); if(Character.getNumericValue(c) == 4){ return true; } } return false; } }
对于各个位的数字是否有4这个问题:先转化成字符串,再从字符串中依次提取字符,将字符转换回int类型后进行比较
也可以直接用string.contains("4")来判断string中是否包含有字符4:
if(i % 4 != 0 && contains(i) == false){
System.out.println(i);
}
public static boolean contains(int i){
String string = String.valueOf(i);
return string.contains("4");
}