Giriş:
Windows'ta standart bir Hesap Makinesi'ne bakalım:
Bu meydan okuma için sadece aşağıdaki düğmelere bakacağız ve diğer her şeyi göz ardı edeceğiz:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
Meydan okuma:
Giriş:
İki giriş alırsınız:
- Biri, 90 derecelik artışlarla dönüşü gösteren bir şeydir
- Diğeri, döndürülmüş hesap makinesinde basılan düğmeleri temsil eden koordinatların bir listesidir.
İlk girişe dayanarak, yukarıda belirtilen düzeni 90 derecelik artışlarla saat yönünde döndürüyoruz. Yani giriş ise 0 degrees
, olduğu gibi kalır; ancak giriş doğruysa, 270 degrees
saat yönünde üç kez (veya saat yönünün tersine) döndürülür. İşte dört olası yerleşim:
Default / 0 degrees:
7 8 9 /
4 5 6 *
1 2 3 -
0 0 . +
90 degrees clockwise:
0 1 4 7
0 2 5 8
. 3 6 9
+ - * /
180 degrees:
+ . 0 0
- 3 2 1
* 6 5 4
/ 9 8 7
270 degrees clockwise / 90 degrees counterclockwise:
/ * - +
9 6 3 .
8 5 2 0
7 4 1 0
İkinci giriş, herhangi bir makul formattaki koordinatların bir listesidir † . Örneğin (0 dizinli 2 tam sayı dizisi):
[[1,2],[2,3],[0,3],[1,0],[1,1]]
Çıktı:
Hem toplamı hem de sonucu (ve eşittir işareti =
) çıkarırız .
Örnek:
Yani giriş 270 degrees
ve [[1,2],[2,3],[0,3],[1,0],[1,1]]
ise, çıktı:
517*6=3102
Zorluk kuralları:
- † Girişler makul herhangi bir formatta olabilir. Birinci giriş olabilir
0-3
,1-4
,A-D
,0,90,180,270
ikinci giriş vs. için çağrı 0 endeksli 2D dizisi, 1-endeksli 2B dizisi, bir String, noktasında nesnelerin listesi olabilir, vb. Verilen örnek girişlere kıyasla x ve y koordinatlarını değiştirmek bile mümkündür. Lütfen cevabınızda hangi giriş formatlarını kullandığınızı belirtiniz! - Boşluk eklemenize izin verilir (ör.
517 * 6 = 3102
) . - Virgülden sonra en fazla üç taneye (yani veya yerine
3102.0
/3102.00
/3102.000
3102
0.430
yerine0.43
). - Çıktıya parantez eklemenize izin verilmediğinden,
(((0.6+4)-0)/2)/4=0.575
geçerli bir çıktı değil. - Diliniz için başka işlenen sembolleri kullanma izniniz var. Yani
×
ya da·
yerine*
; veya÷
yerine/
; vb. - Hesap makinesi bir işlenen girerken otomatik olarak hesapladığından, operatörün önceliğini göz ardı etmelisiniz! Böylece ( ) değil ( ) ile
10+5*3
sonuçlanır (yani → → → (şimdi ekranda 15 görüntülenir) → → (şimdi yanıtı görüntüler )). Ortaya çıkan toplamda kullanırken ve benzer işlevleri kullanırken bunu aklınızda bulundurun .45
(10+5)*3=45
25
10+(5*3)=25
10
+
5
*
3
=
45
eval
- 0'a bölmek için herhangi bir test vakası olmayacak.
- Sonuç olarak üçten fazla ondalık basamağa sahip test durumları olmayacaktır, bu nedenle sonucu yuvarlamaya gerek yoktur.
- Birden fazla işlenenin birbirini takip ettiği veya iki noktanın birbirini takip ettiği test durumları olmayacaktır.
- Negatif sayılar için herhangi bir test durumu olmayacaktır. Eksi işareti (
-
) yalnızca işlenen olarak kullanılır, negatif olarak kullanılmaz. .##
Virgülden önce önde gelen numara olmadan herhangi bir test durumu2+.7
olmayacaktır (yani geçerli bir test durumu2+0.7
olmayacak , ancak olabilir).
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için olabildiğince kısa bir cevap bulmaya çalışın. - Standart kurallar geçerlidirCevabınız için , bu nedenle STDIN / STDOUT, fonksiyon / yöntemi uygun parametrelerle, tam programları kullanmanıza izin verilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.
Test senaryoları:
Input: 270 degrees & [[1,2],[2,3],[0,3],[1,0],[1,1]]
Output: 517*6=3102
Input: 90 degrees & [[3,1],[0,0],[0,1],[3,3],[2,0],[0,3],[0,0],[0,2],[3,0],[2,1]]
Output: 800/4+0.75=200.75
Input: 0 degrees & [[0,0],[1,0],[2,0],[3,0],[1,2],[2,1],[2,2]]
Output: 789/263=3
Input: 180 degrees & [[3,0],[1,0],[1,2],[0,0],[3,2],[0,1],[2,0],[0,3],[2,1],[0,3],[3,2]]
Output: 0.6+4-0/2/4=0.575
1+-*/+-*/2
irade verir 0.5
Pencereler (10) Hesaplayıcı'yı.
[1,3],
2+.7
mu?