Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับ n ตัวเลขที่ไม่มีตัวเลขเฉพาะใน C++


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