เราได้รับตัวเลข สมมติว่า num และจำนวนหลักทั้งหมดที่เก็บไว้ในตัวแปรประเภทจำนวนเต็ม สมมติว่า digi และภารกิจคือการคำนวณการนับจำนวน n หลักที่สามารถเกิดขึ้นได้โดยไม่มีตัวเลขที่ระบุ
ป้อนข้อมูล − n =2 หลัก =2
ผลผลิต − นับเป็น 153
คำอธิบาย − การนับเลขสองหลักทั้งหมด(n) ที่ไม่มีหลักที่ 2 คือ 153 เช่น 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,....... ฯลฯ
ป้อนข้อมูล − n =3 หลัก =3
ผลผลิต − นับเป็น 2187
คำอธิบาย − นับทั้งสามหลัก(n) ไม่มีหลัก 3 คือ 2187 เช่น 10, 11, 13, 14, 15, 16, 17, 18, 19, 30, 31, 33, 34,....... ฯลฯ
แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้
-
ป้อนตัวเลข 'n' และตัวเลขเป็นตัวแปรจำนวนเต็ม
-
ส่งตัวแปรเหล่านี้ไปยังฟังก์ชันที่จะดำเนินการนับ
-
ตั้งค่าตัวแปรสองค่าต่ำสุดและสูงสุดที่ 'n' สามารถเข้าถึงได้ ตัวอย่างเช่น ตัวเลข 2 หลักเริ่มต้นด้วยค่าต่ำสุดที่ 10 และสิ้นสุดจนถึง 99 ในทำนองเดียวกัน ตัวเลข 3 หลักเริ่มต้นด้วยค่าต่ำสุดที่ 100 ถึง 999
-
เริ่มวนซ้ำจากต่ำสุดถึงสูงสุด
-
ภายในลูปให้เริ่มในขณะที่ '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