24.01.2007, 20:43
|
# 12
|
Full Member
Регистрация: 30.04.2002
Сообщения: 1 419
|
Цитата:
Сообщение от 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
|
Спасибо, но это не то. Сам подумай (условие почитай).
|
|
|