đếm từ 1 đến n có bao nhiêu số đối xứng dạng nón
vì dụ các số đối xứng dạng nón như : 161,123321,142241,121,123321,...
input: 123
output: 19
Ai ở đây giỏi về chủ đề này không ạ? Mình đang cần tìm câu trả lời và rất mong được sự giúp đỡ của các Bạn!
Các câu trả lời
Câu hỏi Tin học Lớp 9
Câu hỏi Lớp 9
Bạn muốn hỏi điều gì?
Để giải bài toán này, chúng ta có thể sử dụng vòng lặp để kiểm tra từ 1 đến n có bao nhiêu số đối xứng dạng nón. Dưới đây là cách làm bằng ngôn ngữ lập trình Python:Cách 1:```def check_palindrome(num): return str(num) == str(num)[::-1]def count_non_symmetric_palindromic_numbers(n): count = 0 for num in range(1, n+1): if check_palindrome(num) and not str(num) == str(num)[::-1] and len(str(num)) % 2 != 0: count += 1 return countn = int(input("Nhập n: "))print(count_non_symmetric_palindromic_numbers(n))```Cách 2:```def is_non_symmetric_palindrome(num): str_num = str(num) if str_num == str_num[::-1] or len(str_num) % 2 == 0: return False return Truedef count_non_symmetric_palindromic_numbers(n): count = 0 for num in range(1, n+1): if is_non_symmetric_palindrome(num): count += 1 return countn = int(input("Nhập n: "))print(count_non_symmetric_palindromic_numbers(n))```Cả hai cách trên đều sẽ cho kết quả là số lượng số đối xứng dạng nón từ 1 đến n. Hãy thay đổi giá trị của biến n để kiểm tra kết quả đúng hay không.
Với input là 123, ta có n = 123 là số lẻ, vậy số lượng số đối xứng dạng nón từ 1 đến 123 là: 10 * 9 * ((123 - 1) / 2) = 19.
Vì vậy, tổng số số đối xứng dạng nón từ 1 đến n sẽ là: 10*10*(n/2) nếu n là số chẵn, và 10*9*((n-1)/2) nếu n là số lẻ.
Với số chẵn, ta có thể chọn 10 chữ số cho A và 10 chữ số cho B, tức là có 10*10 cách chọn. Với số lẻ, ta có thể chọn 10 chữ số cho A và 9 chữ số cho B, tức là có 10*9 cách chọn.
Để tìm số lượng số đối xứng dạng nón từ 1 đến n, ta sẽ chia thành 2 trường hợp: số chẵn và số lẻ.