Ahojte, v škole sme dostali zadanie k zápočtu a je to úloha, ktorá mi nie veľmi sadla. V prílohe zasielam jej zadanie. Prikladám aj kód ktorý mi zistí počet štvorcov bez ohľadu na to, či som vyšiel z môjho imaginárneho plátna alebo nie. Potreboval by som len radu, nejaké usmernenie ako by som mal formulovať podmienku a oklieštenie môjho výsledku v rámci môjho plátna. Poprípade nejaký úplne nový nápad. Viem, že riešienie je jednoduché len naň nemôžem prísť. ďakujem
#include <iostream>
#include <math.h>
int main(int argc, char** argv) {
using namespace::std;
int Sx,Sy,k;
int pocet[4] = {0,0,0,0};
int celkPocet;
int zx,zy,i,k_p,umocnovatel;
int x[4],y[4];
cin >> k >> Sx >> Sy;
if (Sx - k >= 0 && Sy - k >= 0 && Sx + k <= 2048 && Sy + k <= 2048)
{
celkPocet = 1;
for (i = 0; i < 4; i++)
{
switch (i)
{
case 0:
zx = -1;
zy = -1;
break;
case 1:
zx = 1;
zy = -1;
break;
case 2:
zx = -1;
zy = 1;
break;
case 3:
zx = 1;
zy = 1;
break;
}
x[i] = Sx + k*zx;
y[i] = Sy + k*zy;
k_p = k;
k_p /= 2;
umocnovatel = -1;
while (k_p > 0)
{
umocnovatel++;
pocet[i] += pow(4,umocnovatel);
x[i] += k_p*zx;
y[i] += k_p*zy;
k_p /= 2;
}
}
}
else cout << "Nie je mozne nakreslit stvorec" << endl;
for (int i = 0; i < 4; i++)
{
celkPocet += pocet[i];
}
cout << "Pocet moznych stvorcov: " << celkPocet << endl;
return 0;
}