Göreviniz, sayıyı değiştirmek için herhangi bir matematiksel işleç kullanmadan pozitif bir tamsayının karekökünü hesaplamaktır:
- Bir değişken ayarlama (örn. SquareRoot = 5)
- İlave (A + B)
- Çıkarma (AB)
- Çarpma (A * B)
- Bölüm (A / B)
- Kare, küp, dördüncü vb. Kökler
- Üslü
Karşılaştırma işleçleri (<,>, ==, vb.) Bu sorunun amaçları için "matematik işleçleri" olarak kabul edilmez ve bir değişkenin değerini değiştirmedikleri sürece bunlara izin verilir.
Kullanabileceğiniz tek operatör ++. Aşağıdaki istisnalar mevcuttur:
- İsterseniz, bir değişkeni 0 olarak ayarlayarak başlatabilirsiniz.
- Diliniz ++ sözdizimini içermiyorsa, foo + = 1 veya foo = foo + 1 gibi eşdeğer bir sözdizimi kullanabilirsiniz.
- Karekök ondalık basamaktan en az 6 basamağa (yüz binlerce yer) kadar hesaplanmalı ve tam ondalık sayı olarak çıkarılmalıdır (örn. 2 girersem yuvarlamaya bağlı olarak 14142135624 veya 1414213 olarak ortaya çıkabilir) . Yukarı veya aşağı yuvarlama önemli değildir.
Kullanıcı tanımlı işlevlere izin verilmez. Ayrıca, goto ile simüle fonksiyonlarına da izin verilmez.
Herkesin ne gönderdiğini görmek istiyorum! Mutlu kodlama!
AÇIKLAMA
Bu sayının pozitif bir tam sayı olduğunu netleştirin. Herhangi bir sayı yapacak bir kod yapabilirsiniz, ancak gerekli değildir.
AÇIKLAMA # 2
Karşılaştırma işleçlerine izin verildiğini netleştirin.
AÇIKLAMA # 3
Toplama, çıkarma, çarpma, değişim numaralarına bölünme ve işlevleri izin verilmez hiç bakmaksızın bir değişken ya da değil kaydedilir bakılmaksızın,. Üzgünüm, bu birkaç mevcut cevabı geçersiz kılıyor, ancak trol cevaplarını önlemek için bu operatör grubunu "sayıyı değiştir" ile tanımlamak istedim (örneğin, sadece sqrt () işlevini kullandım, yalnızca eklemeyi yasakladınız, çarpma, bölme ve çıkarma). Karışıklık için özür dilerim.
AÇIKLAMA # 4
En az 5 rakama ihtiyacımız olduğunu netleştirin. 10 hane kodun uzun süre çalışmasına neden oldu.
while r*r<n*10e20:r+=1
oldukça önemsiz -. Ayrıca, gerekli çıkışı 10 ^ 8 veya daha düşük bir değere düşürmeyi düşünebilirsiniz. Birincisi, 10 ^ 10, 2 ^ 31'den daha büyük ve ikincisi, çünkü bu yüksekliği artırmak biraz zaman alacaktır.