Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 23:50   #1
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию Xanoy! with smol problem

zdastvuyte!!! u menya tut malenkaya problema!!!! delo v tom shto kogda dayu mnogo blokov ona u menya ne rabotaet!!!!! a do 8 i vsyo ok!!!! podskajite!! zaranee spasibo1!!!
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума
Старый 27.04.2009, 23:51   #2
artush1984
Форумчанин
 
Аватар для artush1984
 
Регистрация: 27.04.2009
Сообщений: 184
По умолчанию

#include <cstdlib>
#include <iostream>
#include <cmath>
int xanoy_kent(short,short ,short[],const int);
int xanoy_zuyg(short ,short ,short[],const int);
int print(short[],const int);
double k = 0;
using namespace std;

int main(int argc,char *argv[])
{
short f;
short t;
double n;
std::cin >> n ;
double moves = pow(2,n) - 1.0;
const int sizeOFarray = int(moves);
short xanoy[sizeOFarray];
if(int(n)%2 == 1)
{
f = 1;
t = 3;
xanoy_kent(f,t,xanoy,sizeOFarray);

}
else
{
f = 1;
t = 2;
xanoy_zuyg(f,t,xanoy,sizeOFarray);
}
system("PAUSE");
return EXIT_SUCCESS;
}
int xanoy_kent(short f,short t,short xanoy[],const int sizeOFarray)
{
if(int(pow(2,(k-1))) == (sizeOFarray/2) +1 )
{
print(xanoy,sizeOFarray);
return 0;
}
for(double d = pow(2,k);d <= double(sizeOFarray);d = d + pow(2,(k+1)))
{
xanoy[int(d)] = (100 * f) + (10*t) + (int(k)+1);
if(int(k)%2==0)
{
f = f + 2;
if(f>3)
{
f = f - 3;
}
t = t +2;
if(t>3)
{
t = t - 3;
}
}
if(int(k)%2==1)
{
f = f +1;
if(f > 3)
{
f = f -3;
}
t = t +1;
if(t > 3)
{
t = t -3;
}
}
}
if( int(k)%2 == 1 )
{
f = 1;
t = 3;
}
if( int(k)%2 == 0 )
{
f = 1;
t = 2;
}
k = k + 1;
xanoy_kent(f,t,xanoy,sizeOFarray);
}
int print(short xanoy[],const int sizeOFarray)
{
int j = sizeOFarray;
for(int i = 1;i<=j;++i)
{
std::cout<<i<<") "<<xanoy[i]/100<<"-->"<<(xanoy[i]/10)%10<<" -- "<<xanoy[i]%10<<std::endl;

}

return 0 ;
}
int xanoy_zuyg(short f,short t,short xanoy[],const int sizeOFarray)
{
if(int(pow(2,(k-1))) == (sizeOFarray/2) +1 )
{
print(xanoy,sizeOFarray);
return 0;
}
for(double d = pow(2,k);d <= double(sizeOFarray);d = d + pow(2,(k+1)))
{
xanoy[int(d)] = (100 * f) + (10*t) + (int(k)+1);
if(int(k)%2==0)
{
f = f + 1;
if(f>3)
{
f = f - 3;
}
t = t +1;
if(t>3)
{
t = t - 3;
}
}
if(int(k)%2==1)
{
f = f +2;
if(f > 3)
{
f = f -3;
}
t = t +2;
if(t > 3)
{
t = t -3;
}
}
}
if( int(k)%2 == 1 )
{
f = 1;
t = 3;
}
if( int(k)%2 == 0 )
{
f = 1;
t = 3;
}
k = k + 1;
xanoy_zuyg(f,t,xanoy,sizeOFarray);
}
Hа C я могy пpосто делать ошибки, на C++ я могy их наследовать!
artush1984 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Static Void Problem RIO Общие вопросы .NET 2 02.05.2008 16:52
Что делать..:(((много читать)Global problem! Elm0 Свободное общение 24 28.06.2007 18:13