• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Задача на число из 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);
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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