• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Задача на число из N-знаков.

  • Автор темы MusicMan
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

MusicMan

Помогите пожалуста решить задачку.

Необходимо ввести размерность числа (n), т.е. из скольки чисел состоит это число. Допустим n=10. После этого необходимо ввести это число с клавиатуры. Из этого числа нужно найти все чётные числа и сложить их. Сам толком не понял, что требуется. Помогите разобраться!
 
N

NikSoft

нужно найти все чётные числа и сложить их
Создай перестановки из i по n(n - размерность числа. 1 <= i <= n).
Допустим введет число 345987.
Тогда для i = 1 имеем следующие перестановки:
3, 4, 5, 9, 8, 7

для i = 2 имеем следующие перестановки:
34, 59, 78, ...

...

для i = n имеем следующие перестановки:

345987

Анализируем все перестановки(п) на четность: п % 2 == 0
Если перестановка четна, добавляет ее к перенной, например, p.
 
E

European

<!--QuoteBegin-MusicMan+10:06:2007, 23:43 -->
<span class="vbquote">(MusicMan @ 10:06:2007, 23:43 )</span><!--QuoteEBegin-->Из этого числа нужно найти все чётные числа и сложить их
[snapback]68888" rel="nofollow" target="_blank[/snapback]​
[/quote]
Найти все четные числа или цифры?
 
M

MusicMan

Найти все четные числа или цифры?

Все чётные цифры в числе размерности n. Разрядность цифр равна единице. Т.е. из числа 12345678910, т.е. каждая цифра состоит из одной цифры (простите за болтологию). Незнаю как объяснить. Вобщем последние два элемента это не цифра 10, а 1 и 0.
 
P

Pasha

Для: MusicMan
Вообще-то цифры 10 нет :lol:

Примерно так (сорри, давно на плюсах не писал, и проверить не получается)
Код:
int n;
scanf("%d", &n);
char *buff = new char[n+1];
scanf("%s", buff);

int sum = 0;

for (int i=0; i<n; i++)
{
int c = buff[i] - '0';
if (c % 2 == 0)
sum += c;
}
delete [] buff;
printf("%d\n", sum);
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!