Trong quá trình nhập liệu từ bàn phím, chúng tôi xử lý các loại lỗi nếu người dùng bấm phím không phải phím số. Chúng tôi lặp lại bước lấy đầu vào trừ khi người dùng chỉ nhập số
bước
Để nhận một số từ bàn phím và tìm tích các chữ số chẵn của các chữ số chẵn, chúng ta có thể thực hiện theo các bước sau
- Lấy số làm đầu vào sử dụng từ bàn phím. Đối với điều này, hãy sử dụng phương thức input[]
- Xác định một hàm chấp nhận số và trả về sản phẩm của các chữ số chẵn
- Tính tích của các chữ số chẵn bằng hàm thách thức ở trên
- In sản phẩm đã tính toán
Trong các bước trên, bước thứ hai cần được xây dựng chi tiết hơn vì đây là phần chính của câu hỏi. Hãy thảo luận về cách tiếp cận và thuật toán liên quan đến bước này
Phương pháp tìm tích các chữ số chẵn
Đầu tiên ta tìm từng chữ số trong số và kiểm tra từng chữ số một xem đó có phải là số chẵn không. Để tìm sản phẩm, chúng tôi nhân tất cả các chữ số chẵn. Để tìm các chữ số riêng lẻ của các số, chúng tôi sử dụng toán tử modulo [%]. Các chữ số riêng lẻ được tính là phần còn lại khi số được chia cho 10 bằng toán tử modulo.
thuật toán
1. Tìm các chữ số riêng lẻ
2. Kiểm tra xem chữ số có chẵn không
3. Nhân tất cả các chữ số chẵn
Chương trình 1 [Dễ dàng]
Trong chương trình dưới đây, đầu tiên chúng ta nhận số do người dùng nhập vào và tìm tích của các chữ số chẵn trên số đó. Trong chương trình này, đầu tiên chúng ta đọc đầu vào bằng phương thức input[] . Nó trả về một chuỗi để chúng tôi chuyển đổi nó thành số nguyên. Để xử lý các số âm, chúng ta sử dụng phương thức abs[] .
#Step 1 : Accept Number from user
num = abs[int[input["Please Enter an Integer: "]]]
#Step 2: Define a function to compute the product of even digits
def product[num]:
prod = 1
even = 0
while num > 0:
dig = num % 10
if dig % 2 == 0:
prod = prod*dig
even = even + 1
num = num//10
return prod
#Step 3: find product of digits
prod_dig = product[num]
#Step 4: print the product
if num==0:
print["Product of even digits:", 0]
elif even> 0:
print["Product of even digits:", prod_dig]
else:
print["No Even Digits in the Entered Number"]
đầu ra
Please Enter an Integer: 124356
Product of even digits: 48
Please Enter an Integer: -3487
Product of even digits: 32
Please Enter an Integer: 4350231
Product of even digits: 0
Please Enter an Integer: 0
Product of even digits: 0
Chương trình trên cho kết quả đúng cho số dương, số âm và số 0.
Lưu ý khi bất kỳ chữ số nào trong số bằng 0 thì tích bằng 0 vì chúng ta biết 0 là số chẵn.
Bạn có thể tưởng tượng bất kỳ nhược điểm của chương trình trên?
Hãy nghĩ điều gì sẽ xảy ra nếu người dùng nhấn bất kỳ phím không phải số nào. Chương trình trên có hoạt động không?
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Dung dịch mẫu-2
Mã Python
#License: //bit.ly/3oLErEI
def test[nums]:
prod = 1
for n in nums:
prod *= abs[n % 10]
return prod
nums = [12, 23]
print["Original list of numbers:"]
print[nums]
print["Product of the units digits in the numbers of the said:"]
print[test[nums]]
nums = [12, 23, 43]
print["\nOriginal list of numbers:"]
print[nums]
print["Product of the units digits in the numbers of the said:"]
print[test[nums]]
nums = [113, 234]
print["\nOriginal list of numbers:"]
print[nums]
print["Product of the units digits in the numbers of the said:"]
print[test[nums]]
nums = [1002, 2005]
print["\nOriginal list of numbers:"]
print[nums]
print["Product of the units digits in the numbers of the said:"]
print[test[nums]]
Đầu ra mẫu
Original list of numbers: [12, 23] Product of the units digits in the numbers of the said: 6 Original list of numbers: [12, 23, 43] Product of the units digits in the numbers of the said: 18 Original list of numbers: [113, 234] Product of the units digits in the numbers of the said: 12 Original list of numbers: [1002, 2005] Product of the units digits in the numbers of the said: 10
Sơ đồ
Trực quan hóa việc thực thi mã Python
Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trình chỉnh sửa mã Python
Có một cách khác để giải quyết giải pháp này?
Trước. Đảo ngược trường hợp của tất cả các chuỗi. Đối với những chuỗi không chứa chữ cái, hãy đảo ngược chuỗi
Kế tiếp. Xóa các số trùng lặp khỏi danh sách các số nguyên, giữ nguyên thứ tự
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
con trăn. Lời khuyên trong ngày
Báo cáo năng suất
Bạn có thể nghĩ về câu lệnh lợi nhuận trong cùng danh mục với câu lệnh trả về. Sự khác biệt là, trong khi câu lệnh return trả về một giá trị và hàm kết thúc, thì câu lệnh năng suất có thể trả về một chuỗi các giá trị, nó sắp xếp kết quả, do đó có tên
Nếu bạn quan tâm đến các thuật toán, đây là một minh họa hay về Trực quan hóa thuật toán sắp xếp bong bóng nơi bạn có thể thấy mức độ cần thiết và sử dụng năng suất