使用 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
廣告