Hướng dẫn convert base 10 to base 3 python - chuyển đổi cơ sở 10 thành trăn cơ sở 3

Tôi đang cố gắng tạo ra một số thập phân ternary trong hàm Python. Ý tưởng của tôi là tiếp tục phân chia cho đến khi thương số và phần còn lại bằng nhau, nhưng dường như tôi không thể làm điều đó hoạt động. Đây là mã của tôi:

l = 1


#problem code
def ternary[n]:
    e = n/3
    q = n%3
    e= n/3
    q= e%3
    print q

r = input["What number should I convert?: "]
k = bin[r]
v = hex[r]
i = oct[r]
print k+"[Binary]"
print v+"[Hex]"
print i+"[Octals]"
ternary[r]
l+=1
# Variables:
#l,r,k,v,i 
#n,q,e

Đã hỏi ngày 1 tháng 1 năm 2016 lúc 20:16Jan 1, 2016 at 20:16

7

Ý tưởng của tôi là tiếp tục phân chia cho đến khi thương số và phần còn lại bằng nhau, nhưng dường như tôi không thể làm điều đó hoạt động.

Vâng, một cái gì đó như thế. Về cơ bản, bạn muốn tiếp tục chia cho 3 và thu thập phần còn lại. Phần còn lại sau đó tạo ra số cuối cùng. Trong Python, bạn có thể sử dụng divmod để chia và thu thập phần còn lại.

def ternary [n]:
    if n == 0:
        return '0'
    nums = []
    while n:
        n, r = divmod[n, 3]
        nums.append[str[r]]
    return ''.join[reversed[nums]]

Examples:

>>> ternary[0]
'0'
>>> ternary[1]
'1'
>>> ternary[2]
'2'
>>> ternary[3]
'10'
>>> ternary[12]
'110'
>>> ternary[22]
'211'

Đã trả lời ngày 1 tháng 1 năm 2016 lúc 20:37Jan 1, 2016 at 20:37

chọc chọcpoke

352K67 Huy hiệu vàng542 Huy hiệu bạc590 Huy hiệu Đồng67 gold badges542 silver badges590 bronze badges

4

Điều này cũng có thể được thực hiện với đệ quy.

def ternary[n]:
    e = n//3
    q = n%3
    if n == 0:
        return '0'
    elif e == 0:
        return str[q]
    else:
        return ternary[e] + str[q]

Tổng quát hơn, bạn có thể chuyển đổi sang bất kỳ cơ sở b nào [trong đó

def ternary [n]:
    if n == 0:
        return '0'
    nums = []
    while n:
        n, r = divmod[n, 3]
        nums.append[str[r]]
    return ''.join[reversed[nums]]
0] với hàm đệ quy sau.

def baseb[n, b]:
    e = n//b
    q = n%b
    if n == 0:
        return '0'
    elif e == 0:
        return str[q]
    else:
        return baseb[e, b] + str[q]

Đã trả lời ngày 5 tháng 10 năm 2016 lúc 21:45Oct 5, 2016 at 21:45

Chris Muellerchris MuellerChris Mueller

6.1163 huy hiệu vàng28 Huy hiệu bạc34 Huy hiệu đồng3 gold badges28 silver badges34 bronze badges

Lập trình bên PythonserverServer Side ProgrammingProgramming


Ngoài lập trình cơ bản - Python trung gian

Phổ biến nhất

36 bài giảng 3 giờ 3 hours

Mohammad Nauman

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất

91 bài giảng 23,5 giờ 23.5 hours

Manas Dasgupta

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất 6 hours

Manas Dasgupta

Chi tiết hơn

Học máy thực tế bằng cách sử dụng Python

Người bán hàng giỏi nhất

91 bài giảng 23,5 giờ

  • Manas Dasgupta
    • Khoa học dữ liệu thực tế sử dụng Python
  • 22 bài giảng 6 giờ
  • Giả sử chúng ta có số N, chúng ta phải tìm cơ sở 3 tương đương với số này dưới dạng chuỗi.
  • Vì vậy, nếu đầu vào giống như 17, thì đầu ra sẽ là 122.
    • Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -
  • Nếu n
  • dấu hiệu: = -1
    • Nếu không thì ký: = Chuỗi trống
    • N: = | n |
  • Nếu n

trả về n dưới dạng chuỗi

S: = Chuỗi trống

Trong khi N không giống với 0, hãy làm

class Solution:
   def solve[self, n]:
      sign = '-' if n

Bài Viết Liên Quan

Chủ Đề