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