2011-08-09 13 views
6

sayıda n bir k -ary temsilinde i oyunu bırakanların hanenin değerini hesaplamak için iyi bir algoritma nedir?Bir sayının k-ary temsilinde i-inci basamağının değeri nasıl hesaplanır?

Örnek: fonksiyon bitval(int k, int i, int n) için

: sayı 9730 (302.410 olan) (sağdan) 4.basamağı bir 5-li (beşli) gösterimi 2.

bitval(5, 4, 9730) = 2 olan

için
+0

Soru başlığında "t" nedir? –

+0

@Oli: Üzgünüz, sadece 'gönder' 'çok erken bir zamanda vurmuştum ... – Frank

+0

@Kerrek: Senin noktanı göremiyorum. 'n' bir sayıdır, ör. 9730, dize gösterimi değil. Eğer bir işleve sahipseniz, gerçekten fonksiyonun bir dizeyi _return_, ör. "f" k = 16 ise (onaltılık gösterim). – Frank

cevap

5

şey gibi:

(n/(k ** i)) % k 

(** olan üs alma operatörü ve / tam sayı (kesiliyor) bölümü) yapmalı. Bunun yerine şöyle naif algoritmadır 0.

-2

ile başlayan 1'den başlayarak sağdan basamak sayı istiyorsanız (i-1) kullanın:

  1. n ait k -ary temsilini hesaplayın. Bu tekrarlanan bölünmeler ve modulo işlemleri ile elde edilebilir.
  2. Bu gösterimde i -th rakamını döndürün.
İlgili konular