给定一个数字d ,它代表一个正整数的位数。求出其中至少有一个零的正整数(精确地由d位数字组成)的总计数。
例子:
Input : d = 1
Output : 0
There's no natural number of 1 digit that
contains a zero.
Input : d = 2
Output : 9
The numbers are, 10, 20, 30, 40, 50, 60,
70, 80 and 90.
我们强烈建议您单击此处并进行实践,然后再继续解决方案。
一种简单的解决方案是遍历所有d位正数。对于每个数字,请遍历其数字,如果有0位数,则递增计数(与此类似)。
以下是一些观察结果:
- 恰好有d位数字。
- 最高有效位的数字不能为零(不允许前导零)。
- 除最高有效位以外的所有其他位都可以包含零。
因此,考虑以上几点,让我们找到具有d位数字的总数:
We can place any of {1, 2, ... 9} in D1
Hence D1 can be filled in 9 ways.
Apart from D1 all the other places can be 10 ways.
(we can place 0 as well)
Hence the total numbers having d digits can be given as:
Total = 9*10d-1
Now, let's find the numbers having d digits, that
don't contain zero at any place.
In this case, all the places can be filled in 9 ways.
Hence count of such numbers is given by:
Non_Zero = 9d
Now the count of numbers having at least one zero
can be obtained by subtracting Non_Zero from Total.
Hence Answer would be given by:
9*(10d-1 - 9d-1 )
以下是相同的程序。
C++
//C++ program to find the count of positive integer of a
// given number of digits that contain atleast one zero
#include
using namespace std;
// Returns count of 'd' digit integers have 0 as a digit
int findCount(int d)
{
return 9*(pow(10,d-1) - pow(9,d-1));
}
// Driver Code
int main()
{
int d = 1;
cout << findCount(d) << endl;
d = 2;
cout << findCount(d) << endl;
d = 4;
cout << findCount(d) << endl;
return 0;
}
Java
// Java program to find the count
// of positive integer of a
// given number of digits
// that contain atleast one zero
import java.io.*;
class GFG {
// Returns count of 'd' digit
// integers have 0 as a digit
static int findCount(int d)
{
return 9 * ((int)(Math.pow(10, d - 1))
- (int)(Math.pow(9, d - 1)));
}
// Driver Code
public static void main(String args[])
{
int d = 1;
System.out.println(findCount(d));
d = 2;
System.out.println(findCount(d));
d = 4;
System.out.println(findCount(d));
}
}
// This code is contributed by Nikita Tiwari.
Python3
# Python 3 program to find the
# count of positive integer of a
# given number of digits that
# contain atleast one zero
import math
# Returns count of 'd' digit
# integers have 0 as a digit
def findCount(d) :
return 9*((int)(math.pow(10,d-1)) - (int)(math.pow(9,d-1)));
# Driver Code
d = 1
print(findCount(d))
d = 2
print(findCount(d))
d = 4
print(findCount(d))
# This code is contributed by Nikita Tiwari.
C#
// C# program to find the count
// of positive integer of a
// given number of digits
// that contain atleast one zero.
using System;
class GFG {
// Returns count of 'd' digit
// integers have 0 as a digit
static int findCount(int d)
{
return 9 * ((int)(Math.Pow(10, d - 1))
- (int)(Math.Pow(9, d - 1)));
}
// Driver Code
public static void Main()
{
int d = 1;
Console.WriteLine(findCount(d));
d = 2;
Console.WriteLine(findCount(d));
d = 4;
Console.WriteLine(findCount(d));
}
}
// This code is contributed by nitin mittal.
PHP
Javascript
输出 :
0
9
2439