题目详情
一种报数游戏是从1开始连续报数,如果报到7的倍数(7,14,21,28……)或者包含数字7的数(7,17,27,37……)就用拍手代替这个数而不能报出。假设你连续听到m声拍手,问造成你听到m声拍手的第一下拍手所代表的数是几?例如,你听到了两次连续的拍手,最小的可能这两次拍手是27和28,因此输出27。
输入m, 输出这m次连续的拍手第一下所代表的最小可能的数。
public static int number(int m) {
int i = 6;
int j = 0;
int t = 7;
int count = 0;
while (j < m) {
if ((i % 7 == 0) || String.valueOf(i).indexOf("7") != -1) {
if (j == 0) {
t = i;
count++;
if (count.equals(m))
break;
}
j++;
} else {
j = 0;
}
i++;
}
return t;
}
public static void main(String[] args) {
System.out.println(number(3));
}
以上是用Groovy写的····