Java'da Tek Sihirli Kareler için Programlama Alıştırması

Sihirli bir meydanı ilk kimin çıkardığı belli değil. Uzun zaman önce Çin'de büyük bir sel hakkında bir hikaye var. İnsanlar yıkanacaklarından endişe ediyorlardı ve kurbanlar vererek nehir tanrısını yatıştırmaya çalıştılar. Bir çocuk, sırtında kurbanı dolaşan sihirli bir meydanda spor yapan bir kaplumbağayı fark edene kadar hiçbir şey işe yaramadı. Meydan, insanlara kendilerini kurtarmak için kurbanlarının ne kadar büyük olması gerektiğini anlattı. O zamandan beri sihirli kareler, herhangi bir kaplumbağa için moda yüksekliği oldu.

Daha önce hiç karşılaşmamanız durumunda, sihirli bir kare, sıralardaki sayıların bir düzenlemesidir, böylece satırlar, sütunlar ve köşegenler aynı sayıya toplanır. Örneğin, 3x3 sihirli bir kare:

Bu programlama alıştırması, garip boyutlu sihirli kareler oluşturmakla ilgilidir (yani, karenin boyutu sadece tek bir sayı olabilir, 3x3, 5x5, 7x7, 9x9, vb.). Böyle bir kare yapmanın hilesi, 1 sayısını ilk sıraya ve orta sütuna yerleştirmektir. Bir sonraki sayının nereye yerleştirileceğini bulmak için çapraz olarak yukarı doğru sağa doğru hareket ettirin (yani, bir satır yukarı, bir sütun boyunca). Böyle bir hareket kareden düştüğünüz anlamına gelirse, karşı taraftaki satıra veya sütuna sarın. Son olarak, eğer hareket sizi zaten dolu bir kareye götürürse, orijinal kareye geri dönün ve aşağı doğru birer birer ilerleyin. Tüm kareler dolana kadar işlemi tekrarlayın.

instagram viewer

Şimdi yukarı doğru çapraz hareket zaten dolu bir kareyle sonuçlanıyor, bu yüzden geldiğimiz yere geri dönüyor ve bir satır bırakıyoruz: