В американской армии считается несчастливым число 13, а в японской — 4. Перед международными учениями штаб российской армии решил исключить номера боевой техники, содержащие числа 4 или 13 (например, 40123, 13313, 12345 или 13040), чтобы не смущать иностранных коллег. Если в распоряжении армии имеется 100 тыс. единиц боевой техники и каждая боевая машина имеет номер от 00001 до 99999, то сколько всего номеров придётся исключить?
public class Zadachi{
public static void main(String[] args){
//Создадим переменную, в которую будем заносить количество бракованных табличек
int b=0;
//С помощью простого цикла переберем все номера боевой техники, которые могут содержать несчастливые числа
for(int i=4;i<=99994;i++){
//Для разнообразия я использую тут довольно запутанный способ решения. Преобразуем номер техники к типу String
String s=String.valueOf(i);
//Если в строке встречается символ 4 - увеличиваем счетчик, и проверяем следующий номер
if(s.indexOf('4')!=-1){
b++;
}
//Если символа 4 в строке нет, проверяем есть ли в строке число 13. Для этого проверяем есть ли в строке символ 1, сразу за которым идет символ 3. Если есть - увеличиваем счетчик
else if(s.indexOf('1')!=-1&s.indexOf('1')+1==s.indexOf('3')){
b++;
}
}
System.out.println("Нужно исключить "+b+" номеров");
}
}
Комментариев нет:
Отправить комментарий