İşlemi düşünün:
Negatif olmayan bir tamsayı alma N.
örn27
.Tamsayılar içine çatlıyor
N - floor(N/2)
vefloor(N/2)
(a 'büyük' ve 'küçük' yarısı) ve bu sırayla bunları yazarken.
örneğin27
olur14 13
.Tamsayıları yeni, çok daha büyük bir tamsayıya birleştirmek için boşluk kaldırılıyor.
örneğin14 13
olur1413
.2. ve 3. adımları istediğiniz sayıda tekrarlayın.
örneğin1413
→707 706
→707706
→353853 353853
→353853353853
→ ...
Bu zorluk tam olarak bunu yapmakla ilgilidir, ancak her zaman taban 10'da değildir.
Meydan okuma
B, N ve S olmak üzere üç sayı içeren bir program yazın:
B, N (ikili - ondalık) tabanı olan 2 ila 10 arasında bir tam sayıdır.
N, bölme-birleştirme işlemini uygulamak için negatif olmayan bir tamsayıdır. Kullanıcı girişini kolaylaştırmak için B tabanında bir tamsayı değil bir dize olarak verilir .
S, bölme-birleştirme işlemini tekrarlama sayısı olan negatif olmayan bir tamsayıdır.
Programın çıktısı, S bölünmüş birleştirme prosedürlerinden sonra B bazında N'nin dize temsilidir.
S olduğunda 0
, bölünmeler yapılmaz, bu nedenle çıktı her zaman N olur.
N olduğunda 0
, tüm bölünmeler forma sahiptir 0 0
ve 0
tekrar azalır , böylece çıktı her zaman olur 0
.
Örnekler
B = 10, N = 27, S = 1
→1413
B = 10, N = 27, S = 2
→707706
B = 9, N = 27, S = 1
→1413
B = 9, N = 27, S = 2
→652651
B = anything, N = anything, S = 0
→N
B = anything, N = 0, S = anything
→0
Tüm B için N = 1
S = 0
için 7
:
B S=0 S=1 S=2 S=3 S=4 S=5 S=6 S=7
2 1 10 11 101 1110 111111 10000011111 10000100001000001111
3 1 10 21 1110 202201 101101101100 1201201201212012012011 212100212102121002121212100212102121002120
4 1 10 22 1111 223222 111311111311 2232222232322322222322 11131111131311311111311113111113131131111131
5 1 10 32 1413 432431 213441213440 104220331443104220331442 2433241322130211014044424332413221302110140443
6 1 10 33 1514 535535 245550245545 122553122553122553122552 4125434125434125434125441254341254341254341254
7 1 10 43 2221 11111110 40404044040403 2020202202020220202022020201 10101011010101101010110101011010101101010110101011010100
8 1 10 44 2222 11111111 44444454444444 2222222622222222222226222222 11111113111111111111131111111111111311111111111113111111
9 1 10 54 2726 13581357 62851746285173 3142536758708231425367587081 15212633743485606571782880411521263374348560657178288040
10 1 10 55 2827 14141413 70707077070706 3535353853535335353538535353 17676769267676676767692676771767676926767667676769267676
S = 0
için rasgele N olan tüm B tabloları 3
:
B S=0 S=1 S=2 S=3
2 11011 11101101 11101111110110 11101111110111110111111011
3 2210 11021101 20102012010200 1001212100121210012121001211
4 1113 230223 112112112111 2302302302323023023022
5 101 2323 11341134 31430423143042
6 120 4040 20202020 1010101010101010
7 134 5252 24612461 1230456412304564
8 22 1111 445444 222622222622
9 4 22 1111 505505
10 92 4646 23232323 1161616211616161
ayrıntılar
- Stdin veya komut satırı üzerinden girdi alın. Stdout'a çıktı.
- Bir program yerine, B, N ve S alan ve sonucu normal olarak basan veya döndüren (dize olarak) bir işlev yazabilirsiniz.
- B, N ve S herhangi bir sırada alınabilir.
- Ondalık değerleri 2 32'nin altında olan çıktılar üreten tüm girdiler çalışmalıdır.
- N, olağan şekilde temsil edilir. yani en önemli basamak ilk ve sıfır dışında kendisi yazılan sıfır hariç
0
. (00
Bunun yerine çıktı0
geçersiz.) - Bayt cinsinden en kısa kod kazanır.
İff sen benim zorlukları zevk veren düşünün Blok Yapı Bot sürüleri! biraz sevgi :)