C++中統計不含特定數字的n位數
給定一個數字,例如num,以及儲存在整數型別變數(例如digi)中的總位數,任務是計算可以形成的那些n位數的個數,其中不包含給定的數字。
輸入 − n = 2, digit = 2
輸出 − count is 153
說明 − 不包含數字2的所有兩位數(n)的個數為153,例如10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,.......等等。
輸入 − n = 3, digit = 3
輸出 − count is 2187
說明 − 不包含數字3的所有三位數(n)的個數為2187,例如100, 101, 102, …等等。
下面程式中使用的演算法如下:
輸入數字‘n’和數字作為整型變數。
將這些變數傳遞給一個執行計數操作的函式。
設定兩個變數min和max,表示‘n’可以達到的值。例如,兩位數的最小值為10,最大值為99;三位數的最小值為100,最大值為999。
從min迴圈到max。
在迴圈內部,使用while迴圈直到‘n’大於0。
檢查數字是否存在。如果數字存在,則不執行任何操作;如果數字不存在,則計數加1。
示例
#include<bits/stdc++.h>
using namespace std;
int count(int n, int digit){
int r =0;
int count = 0;
//calculate the min and max of the given number
int min = (int)(pow(10, n-1));
int max = (int)(pow(10, n));
//start the loop till max value start from min
for(int i=min; i<max; i++){
int a=i;
int f=0;
//while a is greater than 0
while(a>0){
r=a%10;
a=a/10;
if(r==digit){
f++;
}
if(f==0){
count++;
}
}
}
return count;
}
int main(){
int n = 2, digit = 2;
cout<<"Count of "<<n<< digit numbers not having a particular digit "<<digit<<" is :"<<count(n, digit);
return 0;
}輸出
如果執行上述程式碼,將得到以下輸出:
Count of 2 digit numbers not having a particular digit 2 is :153
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP