Объяснение:
Выйдя из любой точки лабиринта. Надо сделать отметку на его стене и двигаться в произвольном направлении до тупика или перекрёстка в первом случае вернуться назад поставить второй крест свидетельствующий что путь пройден дважды туда и идти в направлении не пройденом ни разу или пройденом один раз во втором идти по направлении не произвольному направлению отмечая каждый перекрёсток на входе и на выходе одним крестомесли на перекрёстке один крест уже имеется то следует идти новым путем если нет то пройденным путем отметив его вторым крестом
1)
#include <iostream>
using namespace std;
int main()
{
int g, k, n=64;
for (g=0; g<=n; g++)
{
for (k=0; k<=n/2; k++)
{
if (2*g + 4*k == n)
{
printf ("Gycu - %d. \nKpoluk - %d.\n\n", g, k);
}
}
}
return 0;
}
2)#include <iostream>
using namespace std;
long double fact(int N)
{
if(N < 0)
return N;
if (N == 0)
return 1;
else
return N * fact(N - 1);
}
int main()
{
int N, M;
setlocale(0,"");
cout << "N=";
cin >> N;
cout<<"M=";
cin>>M;
cout<<"N!-M!=" << fact(N)-fact(M) << endl << endl;
return 0;
}