C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++では偶数の0で構成されるN桁の数を数えます


入力として数値Nが与えられます。目標は、数字として偶数の0を持つすべてのN桁の数字を見つけることです。 N =3の場合のように、数値の前にゼロを付けることもできます。含まれる数値は001,002,003….010….soなどです。

例を挙げて理解しましょう。

入力 − n =4

出力 −いいえのカウント。偶数の0で構成されるN桁の数字は− 7047

説明 −4桁の数字はすべて次のようになります-

Smallest will be 0000, then 0011,0012,0013,0014…..Highest will be 9900.

入力 − n =5

出力 −いいえのカウント。偶数の0で構成されるN桁の数字は− 66383

説明 −5桁の数字はすべて次のようになります-

Smallest will be 00001, then 00002,00003,00004…..Highest will be 99900.

以下のプログラムで使用されているアプローチは次のとおりです

まず、T=10N-1である合計N桁の数字を計算します。次に、奇数の0を数字として持つすべてのN桁の数値、つまりO=10N-8Nを計算します。数字が偶数の残りの数字はT-O/2になります。

  • 入力として整数Nを取ります。

  • 関数count_even(int N)はNを取り、偶数が0のN桁の数値の数を返します。

  • 合計N桁の数字はtotal=pow(10、N)-1

  • 数字が奇数の合計N桁の数字は、odd =pow(10、N)-pow(8、N)です。

  • 数字の残りの偶数0はeven=total-odd/2です。

  • 偶数が0のN桁の数値のカウントとしても返されます。

#include <bits/stdc++.h>
using namespace std;
int count_even(int N){
   int total = pow(10, N) - 1;
   int odd = pow(10, N) - pow(8, N);
   int even = total - odd / 2;
   return even;
}
int main(){
   int N = 3;
   cout<<"Count of Numbers with N digits which consists of even number of 0's are: "<<count_even(N);
   return 0;
}

出力

上記のコードを実行すると、次の出力が生成されます-

Count of Numbers with N digits which consists of even number of 0's are: 755

  1. C++でDで割り切れるN桁の数値を検索します

    NとDの2つの数があるとします。Dで割り切れるN桁の数を見つける必要があります。Nが3で、Dが5の場合、数は500になります。これは簡単に解決できます。 Dが10でNが1の場合、それは不可能です。 Dを入れて、Dの桁数がmであると仮定し、N – m個の0を付けて、N桁の数でDで割り切れるようにします。 例 #include<iostream> using namespace std; string nDigitDivByD(int n, int d) {    string ans = "";    if (d <

  2. Pythonで偶数桁の数を検索する

    番号のリストがあるとします。桁数が偶数の数を数える必要があります。したがって、配列が[12,345,2,6,7896]の場合、12と7896の桁数は偶数であるため、出力は2になります。 これを解決するには、次の手順に従います- リストを取得し、各整数を文字列に変換します 文字列の長さが偶数の場合は、カウントを増やし、最後にカウント値を返します 例 理解を深めるために、次の実装を見てみましょう- class Solution(object):    def findNumbers(self, nums):       str_num =