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ướng dẫn convert base 10 to base 3 python - chuyển đổi cơ sở 10 thành trăn cơ sở 3

Đã 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

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

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




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

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ướng dẫn convert base 10 to base 3 python - chuyển đổi cơ sở 10 thành trăn cơ sở 3

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ướng dẫn convert base 10 to base 3 python - chuyển đổi cơ sở 10 thành trăn cơ sở 3

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<0 else ''
      n = abs(n)
      if n < 3:
         return str(n)
         s = ''
      while n != 0:
         s = str(n%3) + s
         n = n//3
      return sign+s
ob = Solution()
print(ob.solve(17))

s: = chuỗi của (n mod 3) concatenate s

17

N: = Thương số của (n / 3)

122

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

Return Dấu hiệu Concatenate S

Hãy cho chúng tôi xem việc thực hiện sau đây để hiểu rõ hơn -

  • Thí dụ
  • & nbsp; bản demo trực tiếp
  • Đầu vào
  • Đầu ra
  • Arnab Chakraborty
  • Cập nhật vào ngày 23-SEP-2020 07:19:05
  • Câu hỏi và câu trả lời liên quan
  • Cơ sở 3 đến số nguyên trong Python
  • Bổ sung số nguyên cơ sở 10 trong Python
  • Chuyển đổi chuỗi của bất kỳ cơ sở nào thành số nguyên trong JavaScript
  • Làm cách nào để kiểm tra xem đầu vào thô có số nguyên trong Python 3 không?
  • Chuyển đổi một hệ thống số cơ sở sang hệ thống cơ sở khác trong MySQL
  • Làm thế nào để chuyển đổi một chuỗi của bất kỳ cơ sở nào thành một số nguyên trong JavaScript?
  • Chương trình Python để đảo ngược các bit của một số nguyên dương?
  • La Mã đến số nguyên trong Python
  • Số Osiris 3 chữ số trong C?

Ánh xạ một số nguyên từ cơ sở thập phân đến thập lục phân với ánh xạ tùy chỉnh JavaScript

Quảng cáo