使用 C++ 統計包含偶數個 0 的 N 位數


給定一個數字 N 作為輸入。目標是找到所有包含偶數個 0 作為數字的 N 位數。該數字也可能包含前導零,例如在 N=3 的情況下,包含的數字將是 001、002、003……010……等等。

讓我們透過示例來理解。

輸入 − 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.

下面程式中使用的方案如下

我們首先計算總的 N 位數,即 T=10N-1。然後計算所有包含奇數個 0 作為數字的 N 位數,即 O=10N-8N。包含偶數個 0 作為數字的剩餘數字將是 T-O/2。

  • 將整數 N 作為輸入。

  • 函式 count_even(int N) 獲取 N 並返回包含偶數個 0 的 N 位數的個數。

  • 總的 N 位數為 total=pow(10,N)-1

  • 數字中包含奇數個 0 的總 N 位數為 odd=pow(10,N)-pow(8,N)。

  • 數字中剩餘的偶數個 0 為 even=total-odd/2。

  • 返回 even 作為包含偶數個 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

更新於: 2020年12月1日

124 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告