입력으로 숫자 N이 주어졌습니다. 목표는 num + Rev(num) =10 N 과 같은 모든 N 자리 숫자의 합계가 있는 모든 N 자리 숫자의 개수를 찾는 것입니다. − 1
num+rev(num)=10 N −1
예를 들어
입력
N=4
출력
num + Rev(num) =10 N 과 같은 모든 N 자리 숫자의 개수 − 1은 − 90
설명
The numbers would be − 1. 1188 + 8811 = 9999 2. 2277 + 7722 = 9999 3. 1278 + 8721 = 9999 ……...total 90 numbers
입력
N=5
출력
Count of all N digit numbers such that num + Rev(num) = 10N − 1 are − 0
설명
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
아래 프로그램에서 사용된 접근 방식은 다음과 같습니다. -
임의의 N 자리 숫자에 대해 역수와 그 숫자의 합은 9N−1 =999..N 번이 됩니다. 두 숫자의 개별 자릿수와 그 역수 합이 9이면 N 번입니다. 홀수 N의 경우 중간 자릿수가 자체에 추가됩니다. . 같은 정수는 합이 9가 아니므로 답은 0입니다. 짝수 N인 경우 1st−Nth, 2nd−N−1th, 3rd−N−2th..의 쌍은 9여야 합니다. 가능한 쌍 (1+8), (2+7), (3+6), (4+5), (5+4), (6+3), (7+2), (8+1), (9+0). 답은 9*10 N/2 입니다. − 1
-
정수 N을 입력으로 받습니다.
-
digit_numbers(int N) 함수는 N을 취하고 num + Rev(num) =10^N − 1이 되는 모든 N 자리 숫자의 개수를 반환합니다.
-
초기 카운트를 0으로 합니다.
-
N이 홀수이면 N%2는 1입니다. 0을 반환합니다.
-
그렇지 않으면 카운트 =9 * pow(10, N/2 − 1)를 설정합니다.
-
결과로 카운트를 반환합니다.
예시
#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; }
출력
위의 코드를 실행하면 다음 출력이 생성됩니다 -
Count of all N digit numbers such that num + Rev(num) = 10^N − 1 are: 90