给定数字N作为输入。目标是找到所有N位数字的计数,该计数具有所有N位数字的总和,例如num +Rev(num)= 10 N − 1
num +rev(num)= 10 N -1
例如
N=4输出结果
所有N位数字的计数,例如num + Rev(num)= 10 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位数字,如果两个数字中的单个数字之和与它的反向数字为9,则其总和为9N−1 = 999..N倍。对于奇数N,中间数字将加到自身。由于没有相同的整数相加为9,因此答案将为0。在偶数N的情况下,第一对N,第二对N-1,第三对N-2对。数字必须为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并返回所有N个数字的计数,例如num + Rev(num) = 10 ^ N − 1。
将初始计数设为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