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

นับตัวเลขด้วยหลักหน่วย k ในช่วงที่กำหนดใน C++


เราได้รับช่วง [ก่อน,สุดท้าย] เป้าหมายคือการหาจำนวนตัวเลขที่มีหน่วยหลัก k และอยู่ระหว่างช่วง [ก่อน,สุดท้าย]

เราจะทำสิ่งนี้โดยข้ามจาก i=first ไปยัง i=last สำหรับแต่ละตัวเลข ฉันจะเปรียบเทียบหลักหน่วยกับ k หากตัวเลขเท่ากัน ให้นับ

มาทำความเข้าใจกับตัวอย่างกัน

ป้อนข้อมูล − first=8 สุดท้าย=40 , k=8

ผลผลิต − การนับตัวเลขที่มีหลักหน่วย k − 4

คำอธิบาย

Numbers between 8 and 40 with unit digit = 8
8,18, 28, 38

ป้อนข้อมูล − first=100 สุดท้าย=200 , k=9

ผลผลิต − การนับตัวเลขที่มีหลักหน่วย k − 10

คำอธิบาย

Numbers between 100 and 200 with unit digit = 9
109, 119, 129, 139, 149, 159, 169, 179, 189, 199.
Total:10

แนวทางที่ใช้ในโปรแกรมด้านล่างมีดังนี้

  • เราใช้จำนวนเต็มสองตัวก่อนและตัวสุดท้ายเพื่อกำหนดช่วง [ก่อน ล่าสุด]

  • ฟังก์ชัน getCount(int fst, int lst, int k) รับตัวแปรช่วงและ k และคืนค่าจำนวนตัวเลขระหว่าง fst และ lst และมีหน่วยหลักเป็น k

  • นับเริ่มต้นเป็น 0

  • ใช้สำหรับการวนรอบเริ่มต้นจาก i=fst ถึง i=lst สำหรับแต่ละ i คำนวณหลักหน่วยเป็น ldigit=i%10

  • ถ้า ldigit==k ให้นับเพิ่ม

  • ผลตอบแทนนับเป็นผลลัพธ์

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int getCount(int fst,int lst,int k){
   int count=0;
   for(int i=fst;i<=lst;i++){
      int ldigit=i%10; //to get last digit
      if(ldigit==k) //if both are equal increment count
         { ++count; }
   }
   return count;
}
int main(){
   int first = 5, last = 30;
   int K=5;
   cout<<"Numbers with unit digit K in range:"<<getCount(first, last, K);
   return 0;
}

ผลลัพธ์

หากเราเรียกใช้โค้ดข้างต้น มันจะสร้างผลลัพธ์ต่อไปนี้ -

Numbers with unit digit K in range:3