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

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

MusicMan

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

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

NikSoft

#2
нужно найти все чётные числа и сложить их
Создай перестановки из 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.
 
04.09.2006
2 566
3
#3
<!--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

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

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

Pasha

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