Я хочу найти, если точка (x, y), где x, y целые числа удовлетворяют спиральному квадрату.
(0,0) (0,1) (1,1) (1,2) (0,2) (-1,2) (-2,2) (-2,1) (-2,0) и скоро…..
Как мне это сделать?
Я хочу логику для функции Java или C ++.
Вот некоторая логика псевдокода:
Start with x=0, y=0, dist=0, direction=1
Loop
x += (++dist * direction)
WritePoint(x,y)
y += (++dist * direction)
WritePoint(x,y)
direction *= -1
LoopEnd
Возьми это оттуда.
Сделайте эту операцию:
(operator)(operation)(amount)
где оператор чередуется как x, y, x, y, … (используйте для этого оператор%), операция чередуется как +, +, -, -, +, +, -, -, +, + … (снова используйте оператор% для этого) и количество изменений как 1,2,3, …