Bu zorluk, 1'den 1'e kadar olan sayıları içeren ve belirli bir sayı içeren tüm rakamların toplamını sayan bir program veya senaryo yazmaktır.
Girdi, bir pozitif tamsayı. Çıktı, bu sayıdaki rakamların toplamı ve tüm küçük sayılar.
Örnekler:
Input: 5
Integer Sequence: 1, 2, 3, 4, 5
Sum of Digits: 1 + 2 + 3 +4 + 5 = 15
Input: 12
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12
Sum of Digits: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 + 1 + 1 + 1 + 2 = 51
Açık olmak gerekirse, bu tamsayıları değil, rakamların toplamını saymaktır . Tek basamaklı girişler için bu aynı olacaktır. Ancak, 10'dan büyük olan girdilerin farklı yanıtları olacaktır. Bu yanlış bir cevap olacaktır:
Input: 12
Output: 78
Farkı göstermek için başka bir örnek:
Input: 10
Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Sum of Integers (INCORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Digit Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0
Sum of Digits (CORRECT RESPONSE): 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 1 + 0 = 46
Daha büyük bir test durumu (DOĞRU YANIT)
Input: 1000000
Output: 27000001
Kurallar ve Yönergeler:
- Gönderilen kod tam bir program veya komut dosyası olmalıdır - sadece bir işlev değil. Kod gerektiriyorsa, içeri aktarıyorsa, vb. Gerekiyorsa, kaydedilen koda dahil edilmelidir.
- Numara kullanıcı tarafından girilmelidir - kodlanmış değil. Girdi, komut satırı argümanı, dosya, stdin veya dilinizin kullanıcı girdisini alabileceği herhangi bir diğer yol olarak alınabilir.
- Kod, en azından en çok girişleri düzgün şekilde kullanabilmelidir
(2^64)-1
. - Kod yalnızca toplamı vermelidir.
- Gönderilen programlar ve scriptler kullanıcı dostu olmalı ve bilgisayar kaynaklarına zarar vermemelidir (örneğin: her karakteri tutmak için delicesine büyük diziler bildirmemeliler). Bunun için kesin bir bonus veya ceza yoktur, ancak lütfen iyi programcılar olun.
puanlama:
Birincil puanlama mekanizması kod uzunluğu gereğidir. Düşük puanlar daha iyidir. Aşağıdaki ikramiye ve cezalar da uygulanır:
- -25 Eğer kodunuz tüm pozitif sayıları işleyebilirse, örneğin:
1234567891234567891234564789087414984894900000000
- -50 Örneğin, kodunuz basit ifadelerle başa çıkabilirse
55*96-12
. Bu bonusa hak kazanmak için kodun+ - / *
(toplama, çıkarma, bölme, çarpma) operatörlerini işlemesi ve işlem sırasını zorlaması gerekir. Bölünme, normal tamsayı bölümüdür.- Verilen örnek (
55*96-12
) olarak değerlendirilir5268
. Bu girişlerden herhangi biri için kodunuz aynı şekilde dönmelidir - doğru cevap81393
.
- Verilen örnek (
- -10 Bonus eğer kod -50 ödülüne hak ve işleyebilir
^
(üs) operatörünü. - -100 Bonus , kodunuz -50 bonus için uygunsa ve
eval
ifadeleri işlemek için kullanmaz veya kullanmazsa . - Kodunuz herhangi bir web kaynağına dayanıyorsa, +300 Ceza .
55*96-12
dönmeli?