java“逢7过”,为什么我这样写会把1到100都打印出来啊,谢谢大家解答
package test;
public class Test16 {
public static void main(String[] args) {
//逢7过
int i = 0;
int tmp = 0;
for(i=1;i<101;i++){
//包含七
tmp = i;
int a = 0;
int yu = 0;
while(tmp==0) {
yu = tmp%10;
if(yu == 7) {
a = yu;
break;
}
tmp=tmp/10;
}
if(i%7 == 0 || a==yu){
System.out.println(i);
}
}
}
}
按你的代码修改如下
public class Test16 {
public static void main(String[] args) {
//逢7过
int i = 0;
int tmp = 0;
for(i=1;i<101;i++){
//包含七
tmp = i;
int a = 0;
int yu = 0;
while(tmp != 0) {
yu = tmp % 10;
if(yu == 7) {
a = yu;
break;
}
tmp = tmp / 10;
}
if(i%7 == 0 || a==yu){
System.out.println(i);
}
}
}
}
这样不简单些
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0 || (i + "").contains("7")) {
continue;
}
System.out.println(i);
}
}
}
该回答引用chatgpt:
你的逢7过是啥意思,只打印不包含7的数字吗?
for (int i = 1; i <= 100; i++) {
if (i % 10 != 7 && i / 10 != 7) {
System.out.println(i);
}
}