Cho một số N làm đầu vào. Mục tiêu là tìm tổng số tất cả N chữ số có tổng Đếm tất cả N chữ số sao cho num + Rev (num) =10 N - 1
num + rev (num) =10 N −1
Ví dụ
Đầu vào
N=4
Đầu ra
Đếm tất cả N số chữ số sao cho num + Rev (num) =10 N - 1 là - 90
Giải thích
The numbers would be − 1. 1188 + 8811 = 9999 2. 2277 + 7722 = 9999 3. 1278 + 8721 = 9999 ……...total 90 numbers
Đầu vào
N=5
Đầu ra
Count of all N digit numbers such that num + Rev(num) = 10N − 1 are − 0
Giải thích
As N is odd, there will be no such number as the middle element will be added to itself and cannot have sum as 9. Ex. 148+841=989
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau -
Đối với bất kỳ chữ số N nào, tổng của nó có số đảo ngược sẽ là 9N − 1 =999..N lần nếu tổng các chữ số riêng lẻ trong cả hai số và số đảo ngược của nó là 9. Trong trường hợp N lẻ, chữ số ở giữa sẽ được thêm vào chính nó. . Vì không có số nguyên nào giống nhau có tổng là 9 nên câu trả lời sẽ là 0. Trong trường hợp N chẵn, các cặp số 1-N, 2-N-1, 3-N-2 .. Các chữ số sẽ phải là 9. Các cặp có thể có sẽ là (1 + 8), (2 + 7), (3 + 6), (4 + 5), (5 + 4), (6 + 3), (7 + 2), (8 + 1), (9 + 0). Câu trả lời sẽ là 9 * 10 N / 2 - 1
-
Lấy một số nguyên N làm đầu vào.
-
Hàm digit_numbers (int N) nhận N và trả về số tất cả N chữ số, chẳng hạn như num + Rev (num) =10 ^ N - 1.
-
Lấy số lượng ban đầu là 0.
-
Nếu N lẻ, thì N% 2 là 1. Trả về 0.
-
Số bộ khác =9 * pow (10, N / 2 - 1).
-
Kết quả là số lượt trả lại.
Ví dụ
#include <bits/stdc++.h> using namespace std; int digit_numbers(int N){ int count = 0; if (N % 2 == 1){ return 0; } else { count = 9 * pow(10, N/2 − 1); } return count; } int main(){ int N = 4; cout<<"Count of all N digit numbers such that num + Rev(num) = 10^N − 1 are: "<<digit_numbers(N); return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Count of all N digit numbers such that num + Rev(num) = 10^N − 1 are: 90