Добрый день, дорогой читатель! Сегодня в транспорте я получил счастливый билет. Вам знакомо с детства это чувство торжества и ликования, когда сумма первых трех цифр равна сумме последних трех. Кто-то съедал их, а кто-то — разрывал на мелкие части, но желание загадывали все.Но а мы сегодня напишем простую программу для подсчета количества счастливых билетов, и найдем вероятность получения счастливого билета.

image


Рисунок 1. Счастливый билет

Алгоритм простой. Сначала заполним массив из 1000000 строк строками от 000000 до 999999. Далее будем преобразовывать каждую строку данного массива в массив символов (6 символов). Преобразуем тип Char в Int. Найдем первую сумму, сравним со второй. Если равны, то увеличить счетчик. Перейти к следующей строке первого массива. По завершении — вывод счетчика.

Код для Java Eclipse.
package happynumber;

public class Happynumbercounter {
	public static void main(String[] args) {
		String[] array = new String[1000000];
		// для чисел 0-9 5 значащих нулей впереди
		String s1 = "00000";
		// для чисел 10-99 4 значащих нуля впереди
		String s2 = "0000";
		// для чисел 100-999 3 значащих нуля впереди
		String s3 = "000";
		// для чисел 1000-9999 2 значащих нуля впереди
		String s4 = "00";
		// для чисел 10000-99999 1 значащий нуль впереди
		String s5 = "0";
		// для чисел 100000-999999 нет значащих нулей впереди
		// счетчик
		int counter = 0;
		for (int i = 0; i < 10; i++) {
			array[i] = s1 + i;
		}

		for (int i = 10; i < 100; i++) {
			array[i] = s2 + i;
		}

		for (int i = 100; i < 1000; i++) {
			array[i] = s3 + i;
		}

		for (int i = 1000; i < 10000; i++) {
			array[i] = s4 + i;
		}

		for (int i = 10000; i < 100000; i++) {
			array[i] = s5 + i;
		}

		for (int i = 100000; i < 1000000; i++) {
			array[i] = Integer.toString(i);
		}

		// если сумма первых трех цифр равна сумме последних трех - то увеличить счетчик
		// на 1
		for (int i = 0; i < 1000000; i++) {
			char chararr[] = array[i].toCharArray();
			if ((Integer.parseInt(String.valueOf(chararr[0])) + Integer.parseInt(String.valueOf(chararr[1]))
					+ Integer.parseInt(String.valueOf(chararr[2]))) == (Integer.parseInt(String.valueOf(chararr[3]))
							+ Integer.parseInt(String.valueOf(chararr[4]))
							+ Integer.parseInt(String.valueOf(chararr[5])))) {
				counter = counter + 1;
			}
		}
		// вывести значение счетчика
		System.out.print(counter);
	}
}


Eclipse подсчитал 55252 счастливых билета на одну билетную ленту. Т.к. всего в ней 1000000 билетов, то вероятность получения счастливого билета = 55252/1000000 = 0.055252.

Вероятность получения счастливого билета = 55252/1000000 = 0.055252


Кстати, если вы житель Петербурга, то «бюро сладкой архитектуры Rubiscookies обменивает бумажные «счастливые билетики» на сладкие: шоколадные или карамельные, оригинального размера или формата альбомного листа.» Согласитесь, это гораздо приятнее и вкуснее!

Спасибо, что прочли статью до конца! Удачи!

Комментарии (0)