Ở đây, chúng ta sẽ sử dụng một số cơ sở toán học trong khi lập trình. Vấn đề là, khi bạn hỏi một số từ người dùng, người dùng sẽ cung cấp đầu vào dưới dạng số có nhiều chữ số [chỉ xem xét số nguyên]. Vậy tìm loại số thì dễ nhưng tìm chữ số trong dãy số thì không dễ
Vì vậy, trong bài toán sau đây, chúng ta sẽ sử dụng thủ thuật toán học của
- Trừ phần dư sau khi chia cho 10 i. e. loại bỏ chữ số cuối cùng
- Chia một số nguyên cho 10 sẽ ra một số nguyên trong lập trình máy tính [câu lệnh trên chỉ đúng khi các biến được khởi tạo là int mà thôi]
Ví dụ
Input: 12345 Output: 54321
Mã Python để trích xuất và in các chữ số của một số theo thứ tự ngược lại
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]
đầu ra
Enter a number with multiple digit: 123456789 9876543219
Ở đây, trước tiên chúng ta sử dụng một vòng lặp với điều kiện num>0 và chữ số cuối cùng của số được lấy ra bằng cách sử dụng toán tử % đơn giản sau đó, số hạng còn lại được trừ khỏi num. Sau đó, số num được giảm xuống 1/10 để chữ số cuối cùng có thể bị cắt bớt
Nếu bạn đang học lớp Python mới bắt đầu, giáo sư của bạn có thể chỉ muốn xem thứ gì đó như thế này mà không sử dụng danh sách hoặc chỉ mục chuỗi
num = 1203
for i, n in enumerate[str[num]]:
if i == 0:
print[n, end=""]
else:
print[', ' + n, end='']
[Out]: 1, 2, 0, 3
Tôi muốn viết một hàm đơn giản để in ngược lại các chữ số của một số nguyên.
Tôi nghĩ có thể thực hiện được với vòng lặp while, nhưng tôi không chắc lắm.
Tôi đã thử nhưng không được.
Mở rộng. Chọn. Gói. Số dòng
- def print_digits[n]
- n = abs[n]
- trong khi n > 0
- n = n % 10
- in n,
23 Jul '08 #1
Trong python % là toán tử modulo. Tôi không chắc những gì bạn đang cố gắng ở đây
Đây là cách đảo ngược các chữ số của một số nguyên bằng cách sử dụng khả năng hiểu danh sách
Mở rộng. Chọn. Gói. Số dòng
- >>> def print_digits[n]
- new_n = [lett for lett in str[n]]
- new_n. đảo ngược[]
- in ''. tham gia [new_n]
- >>> print_digits[136]
- 631
- >>>
23 Jul '08 #2
chờ đã. bây giờ tôi thấy những gì bạn đang cố gắng làm
Mở rộng. Chọn. Gói. Số dòng
- >>> def print_n[n]
- trong khi n > 0
- in n % 10,
- n = n / 10
- >>> print_n[492]
- 2 9 4
- >>>
Mô-đun 10 sẽ cung cấp cho bạn phần còn lại nhưng bạn muốn chia số nguyên cho 10 mỗi lần để giảm số một chữ số khác
23 Jul '08 #3
Chà, tôi mới làm quen với Python và tôi đang đọc cái này.
http. // dự án sách mở. mạng/nghĩCSpy/ch06. xhtml#auto16
vì vậy bài tập là số 8
Mở rộng. Chọn. Gói. Số dòng
- def print_digits[n]
- """
- >>> print_digits[13789]
- 9 8 7 3 1
- >>> print_digits[39874613]
- 3 1 6 4 7 8 9 3
- >>> print_digits[213141]
- 1 4 1 3 1 2
- """
Hi vọng điêu nay co ich
23 Jul '08 #4
Cảm ơn đã trả lời nhanh chóng. Bây giờ tôi có thể ngủ yên
23 Jul '08 #5
Đăng nhập để đăng câu trả lời của bạn hoặc Đăng ký một tài khoản miễn phí
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Chương trình phải chấp nhận một số nguyên N làm đầu vào. Chương trình phải in mẫu mong muốn như minh họa trong ví dụ đầu vào/đầu ra. ví dụ
Đầu vào. Đầu ra 41325. . ****. *. ***. **. ***** Giải trình. đối với một số nguyên đã cho, hãy in số lượng * tương đương với mỗi chữ số trong số nguyên. Ở đây chữ số đầu tiên là 4 nên in bốn *sin dòng đầu tiên. Chữ số thứ hai là 1 nên in ra một *. Vì vậy, và cuối cùng tôi. e. , chữ số thứ năm là 5 do đó in năm * s trong dòng thứ năm. Đầu vào. Đầu ra 60710. . ******. . *******. *
Cách tiếp cận Đọc đầu vào Đối với mỗi chữ số trong số nguyên, in số * s tương ứng Nếu chữ số đó là 0 thì in không có * s và chuyển sang dòng tiếp theo
Python3
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]3
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]4
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]5
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]6
import math
def get_digits[num]:
return [[num//[10**i]]%10 for i in range[math.ceil[math.log[num, 10]]-1, -1, -1]]
0import math
def get_digits[num]:
return [[num//[10**i]]%10 for i in range[math.ceil[math.log[num, 10]]-1, -1, -1]]
1 |**** |* |*** |** |*****5
import math
def get_digits[num]:
return [[num//[10**i]]%10 for i in range[math.ceil[math.log[num, 10]]-1, -1, -1]]
5|**** |* |*** |** |*****7
|**** |* |*** |** |*****8
|**** |* |*** |** |*****9
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]30
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]31
|**** |* |*** |** |*****9
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]30
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]31
|**** |* |*** |** |*****9
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]30
num = int[input["Enter a number with multiple digit: "]] n=0 while num>0: a = num%10 num = num - a num = num/10 print[int[a],end=""] n = n + 1 print[n]37