เราได้รับตัวเลข สมมติว่า 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