算法设计(计算d位数的正整数,以0作为数字)

本文概述

  • C ++
  • Java
  • Python3
  • C#
  • 的PHP
给定一个数字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数字, 则递增计数(类似于这个)。
以下是一些观察结果:
  1. 恰好有d位数字。
  2. 最高有效位的数字不能为零(不允许前导零)。
  3. 除最高有效位以外的所有其他位置可以包含零。
算法设计(计算d位数的正整数,以0作为数字)

文章图片
因此, 考虑以上几点, 让我们找到具有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 be10 ways. (we can place 0 as well) Hence the total numbers having d digits can be given as: Total =9*10d-1Now, 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 = 9dNow 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< bits/stdc++.h> 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
< ?php //PHP program to find the count //of positive integer of a given //number of digits that contain //atleast one zero//Returns count of 'd' digit //integers have 0 as a digit function findCount( $d ) { return 9 * (pow(10, $d - 1) - pow(9, $d - 1)); }//Driver Code { $d = 1; echo findCount( $d ), "\n" ; $d = 2; echo findCount( $d ), "\n" ; $d = 4; echo findCount( $d ), "\n" ; return 0; }//This code is contributed by nitin mittal ?>

输出:
0 9 2439

【算法设计(计算d位数的正整数,以0作为数字)】如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。

    推荐阅读