Сейчас мы рассмотрим задачу, условие которой следующее:
Трамвайные билеты имеют номера из шести цифр от 000000 до 999999, билет называется счастливым, если сумма 1-й, 3-й и 5-й цифр равна сумме 2-й, 4-й и 6-й цифр. Необходимо вычислить количество счастливых билетов.
Алгоритм весьма прост — в цикле перебираем все числа от 0 до 999999, если условие равенства выполняется, то увеличиваем счетчик на единицу. В итоге у нас должно получиться ровно 55252 билета.
Для решение данной задачи нам понадобится массив из шести элементов и цикл. При каждой итерации цикла (их у нас будет 999999) мы будем загонять в массив шестизначное число, по одной цифре в каждую ячейку памяти. Затем мы проверяем, удовлетворяет ли данный массив поставленному условию.
Если сумма 1-й, 3-й и 5-й цифр равна сумме 2-й, 4-й и 6-й цифр, тогда увеличиваем значение счетчика sum
на единицу.
После завершения всего цикла функция builets()
возвращает искомое значение функции main(), которая и выводит результат на экран.
#include <iostream>
using namespace std;
int tickets()
{
int sum = 0;
int i, j, k;
char builet[6];
for (i = 0; i <= 999999; i++) {
for (k = i, j = 0; j < 6; j++, k /= 10) {
builet[j] = k % 10;
}
if (builet[0]+builet[2]+builet[4] == builet[1]+builet[3]+builet[5]) {
++sum;
}
}
return sum;
}
int main()
{
setlocale(0, "");
int k = tickets();
cout << "Количество счастливых билетов: " << k << endl;
return 0;
}
Функция builets()
проверяет равенство суммы цифр, заданное
условием, и увеличивает переменную sum на единицу, если равенство выполняется.
После полного прохождения цикла функция возвращает число, которое и является решением задачи.
Комментарии к статье: 10
Возможность комментировать эту статью отключена автором. Возможно, во всем виновата её провокационная тематика или большое обилие флейма от предыдущих комментаторов.
Если у вас есть вопросы по содержанию статьи, рекомендуем вам обратиться за помощью на наш форум.