所有N位数字的计数,使得C ++中的num + Rev(num)= 10 ^ N-1
给定数字N作为输入。目标是找到所有N位数字的计数,该计数具有所有N位数字的总和,例如num+Rev(num)=10N−1
num+rev(num)=10N-1
例如
输入值
N=4输出结果
所有N位数字的计数,例如num+Rev(num)=10N−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*10N/2−1
以整数N作为输入。
功能digit_numbers(intN)取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