Желательно решить на c++клуб юных хакеров организовал на своем сайте форум. форум имеет следующую структуру: каждое сообщение либо начинает новую тему, либо является ответом на какое-либо предыдущее сообщение и принадлежит той же теме. после нескольких месяцев использования своего форума юных хакеров заинтересовал вопрос - какая тема на их форуме наиболее популярна. им выяснить это.входные данныев первой строке вводится целое число n - количество сообщений в форуме (1 < = n < = 1000). следующие строки содержат описание сообщений в хронологическом порядке. описание сообщения, которое представляет собой начало новой темы, состоит из трех строк. первая строка содержит число 0. вторая строка содержит название темы. длина названия не превышает 30 символов. третья строка содержит текст сообщения. описание сообщения, которое является ответом на другое сообщение, состоит из двух строк. первая строка содержит целое число - номер сообщения, ответом на которое оно является. сообщения нумеруются, начиная с единицы. ответ всегда появляется позже, чем сообщение, ответом на которое он является. вторая строка содержит текст сообщения. длина каждого из сообщений не превышает 100 символов.выходные данныевыведите название темы, к которой относится наибольшее количество сообщений. если таких тем несколько, то выведите первую в хронологическом порядке
1. Вычисляем значение цифр:
Например, в таблице дано, что 0000 = 4, соответственно каждый ноль означает единицу
1 = 0
2 = 0
3 = 0
5 = 0
6 = 1
7 = 0
8 = 2
9 = 1
0 = 1
2. Находим значения неизвестных цифр:
6855 = 1 + 2 + 0 + 0 = 3
9881 = 1 + 2 + 2 + 1 = 5
6591 = 1 + 0 + 1 + 0 = 2
3. Решаем примеры (если учесть, что цифры из предыдущего номера идут по порядку):
675 ÷ 3 - 215 = 10
475 × 5 ÷ 5 - 420 = 55
(2 - 1) × 83 = 83
4. Теперь нужно разобраться с цифрами, которые идут после примеров (три, один, один):
Тут, как я думаю, есть два варианта решения. Первый заключается в том, что к окончаниям цифр, которые получились в 3 номере, нужно добавить те цифры, которые написаны, то есть: 10 - 103, 55 - 551, 83 - 831.
На сейфе 12 позиций (цифр), то есть один круг равняется 12, соответственно:
103 ÷ 12 = 8 с остатком 7
551 ÷ 12 = 45 с остатком 11
831 ÷ 12 = 69 с остатком 3
Я считаю, что данное решение не правильное, так как крутить 69 раз не кажется мне разумным
Второе решение - окончания цифр, которые получились в 3 номере, заменяются на три, один, один: 10 - 13, 55 - 51, 83 - 81.
Делим на 12 (сейф):
13 ÷ 12 = 1 с остатком 1
51 ÷ 12 = 4 с остатком 3
81 ÷ 12 = 6 с остатком 9
В данном решении необходимо сделать максимум 6 оборотов, что кажется мне наиболее правильным.
ответ: 1 оборот по часовой, останавливается на цифре 1; 4 оборота против часовой, останавливается на 3; 6 оборотов по часовой, останавливается на 9.
Внимание! Не факт, что данное решение является правильным.
Объяснение:
#include "pch.h"
#include <stdio.h>
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
int num, k=0;
string str;
cout << "Введи многозначное число" << endl;
cin >> num;
while (num != 0)
{
k += 1;
num /= 10;
}
if(k==1)
{
cout << k << " цифра" << endl;
}
else if (k >= 2 && k <= 4) {
cout << k << " цифры" << endl;
}
else {
cout << k << " цифр" << endl;
}
system("pause");
return 0;
}