Вниз
Скачать: CL | DM;

Алгоритм вот надо :)   Найти похожие ветки 

 
X-shadow ©   (2003-07-30 20:56) [0]

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


 
jack128 ©   (2003-07-30 21:09) [1]

ищешь рядом с вибитой ячейкой другие выбитые, рябом с эти ячейками другие и так далее...если в конце концов найдешь 2 ячейки у края или наткнешься на ячейку каторую уже тестил, то расколится..
Поищи реализацию волнового алгоритма - это он! в данном случаи доступный путь - это путь по выбирым ячейкам(клеткам)


 
Leran2003   (2003-07-30 21:29) [2]

Проще будет сделать так (просматривать по невыбитым)...

Матрица 8х8 из целых чисел: 1-нормальная ячейка, 0-выбитая

Count=0

1) Ищем первую невыбитую ячейку, рекурсивно находим все соседние с нею невыбитые ячейки, присваиваем им 2... От соседних невыбитых тоже самое, таким образом мы покроем один блок... Count++;

2) Ищем следующую невыбитую ячейку (которая=1), рекурсивно находим все соседние с нею невыбитые ячейки, присваиваем им 2... От соседних невыбитых тоже самое, таким образом мы покроем еще один блок... Count++;

Если нет ячеек=1 то WriteLn(Count); END.
Иначе Goto 2;


 
X-shadow ©   (2003-07-31 20:47) [3]

double f(double base, unsigned exponent)
{
if (exponent==1) return base;
unsigned t=exponent>>1;
double z=f(base*base,t);
if (exponent & 1) z*=base;
return z;
}

void main()
{
double x=1.000000007;
unsigned y=4293656784;
printf("%f\n",f(x,y));
}


 
ЮЮ ©   (2003-08-01 05:07) [4]

Рекурсивно возводить в степень ? Умножение в столбик :-)
Оснокомься с функцией Power!
x^y = exp(y*ln(x))



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
11-29287
BelchonokH
2003-05-23 21:21
2004.02.10
ListView


3-29226
raul
2004-01-19 18:20
2004.02.10
BDE API


1-29346
Eli
2004-01-29 12:50
2004.02.10
ActiveControl.Handle


1-29426
Zn
2004-01-31 11:35
2004.02.10
Работа с Excel


11-29290
nsvi
2003-05-28 03:14
2004.02.10
Как прервать цикл?




   Наверх