IDEJA REŠITVE:
Ideja rešitve tega problema je nadvse preprosta. Uvedemo nek števec. Potem za vse pare točk pregledamo, če absolutna vrednost razlike abscis enaka absolutni vrednosti razlike ordinat. Če ta enakost velja, vemo, da imamo kvadrat in števec povečamo za 1.
RAZLAGA ALGORITMA:
Najprej definiramo funkcijo, ki sprejme dve celoštevilski tabeli (ena z x koordinatami, druga z ustreznimi y koordinatami), vrne pa celo število - public static int Kvadrati(int[] x, int[] y)
. Na začetku programa preverimo, če sta tabeli x in y enake dolžine. Če ugotovimo, da nista, vemo, da je prišlo do napake in sprožimo izjemo: ArgumentException. Uvedemo novo spremenljivko stevec (tipa int) in jo nastavimo na vrednost 0. Nato v zunanji for zanki se sprehodimo po vseh indeksih tabele x, v notranji zanki se pa sprehodimo po indeksih tabele, ki so večji od tekočega indeksa zunanje zanke - tako pokrijemo vse pare točk, nobenega pa dvakrat. V teh zankah preverimo, če tekoči par tvori kavadrat. Par točk tvori kvadrat, če je absolutna vrednost razlike njunih abscis enaka absolutni vrednosti njunih ordinat - Math.Abs(x[i]-x[j])==Math.Abs(y[i]-y[j])
. Če ta enakost velja, vrednost števca povečamo za 1. Ko se zanki izvedeta, vrnemo števec.