挺简单的一题
import java.util.Scanner;
public class Main {
static int[] ren=new int[4];
static int zhi=0;//指针变量
public static void main(String[] args) {
Scanner as=new Scanner(System.in);
int n=as.nextInt();
int baoshu=1;
while (baoshu<=n) {
if ( panDuan( baoshu ) ) {
taoguo();//跳过
n++;//因为这个数跳过了但是要抱够n个数所以这里加长n的长度
}
else {
butaoguo();
}
baoshu++;
}
for (int i = 0; i < 4; i++) {
System.out.println(ren[i]);
}
}//main
//跳过的选项 不跳过就要在报数那里计数
public static void taoguo() {
ren[zhi]++;
zhi++;
if (zhi==4) zhi=0 ;
}
//不跳过的选项
public static void butaoguo() {
zhi++;//仅拨动指针
if (zhi==4) zhi=0 ;
}
//是否要跳过
public static boolean panDuan(int a) {
boolean tr=false;//默认跳过
if (a%7==0) tr=true;//是否是7的倍数
else {//是否有7
while (a>0) {
if(a%10==7) { return tr=true; }
a/=10;
}
}
return tr;
}
}//类