Показать сообщение отдельно
Старый 24.01.2007, 20:43     # 12
doro
Full Member
 
Аватар для doro
 
Регистрация: 30.04.2002
Сообщения: 1 419

doro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собойdoro Имеются все основания чтобы гордиться собой
Цитата:
Сообщение от Voland25 Посмотреть сообщение
Можно это делать алгоритмом разложения на простые множители, однако если я понял правильно, тут ряд множителей дан заранее. Тогда вот за пару минут набросал на С:

#include <stdio.h>

void main() {
int dividers[] = {1,2,3};
int currentDivider, arrayPosition, divisionResult, residue;

int X = 23, tempX;

tempX = X;

printf("\n%d is:\n", X);

for (arrayPosition = 2; arrayPosition >= 0 ; arrayPosition--) {
currentDivider = dividers[arrayPosition];
if (tempX < currentDivider)
continue;
else if (tempX == currentDivider) {
printf("1 occurence of divider %d\n", currentDivider);
break;
}
else {
divisionResult = (int) (X/currentDivider);
residue = X % currentDivider;
printf("%d occurences of divider %d\n", divisionResult, currentDivider);
tempX = residue;
}
}
}

Вывод:

23 is:
7 occurences of divider 3
1 occurence of divider 2

Спасибо, но это не то. Сам подумай (условие почитай).
doro вне форума