一、
问题描述
试题编号: 201912-1
试题名称: 报数
时间限制: 1.0s
内存限制: 512.0MB
二、请直接看代码,注释很全
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//pass1表示甲跳过的次数,pass2表示乙,pass3、4同上
int pass1=0,pass2=0,pass3=0,pass4=0,count=1;
//who表示当前数字的玩家,1表示甲,2表示乙,3表示丙,4表示丁
int who=0;
while(count <= n){
String temp = String.valueOf(count);
if(count%7==0 || temp.contains("7")){//当此数字是7的倍数或含7时
if(++who == 5)//这个数是谁数的
who=1;
switch(who){//是谁数的谁的pass数量便+1
case 1:pass1++;break;
case 2:pass2++;break;
case 3:pass3++;break;
case 4:pass4++;
}
n++;
//因为此数跳过了,所以使n+1,多数一个,否则到最后我们数的数不够题中要求的n个
}else{
if(++who == 5)
who=1;
}
count++;
}
System.out.println(pass1);
System.out.println(pass2);
System.out.println(pass3);
System.out.println(pass4);
}
}