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

นับจำนวนรูในจำนวนเต็มใน C++


กำหนดอาร์เรย์ของหลุม [10] ที่มีจำนวนหลุมในตัวเลข 0 ถึง 9 เป้าหมายคือการหาจำนวนหลุมในจำนวนเต็มที่กำหนดให้เป็นอินพุต ให้ − หลุม[] ={ 2, 1, 1, 0, 0, 1, 1, 1, 0 }

ตัวอย่าง

อินพุต

number = 239143

ผลลัพธ์

Count the number of holes in an integer are: 3

คำอธิบาย

We will count holes given in holes[]
239143 ( 1+0+0+2+0+0 )

อินพุต

number = 12345

ผลลัพธ์

Count the number of holes in an integer are: 3

คำอธิบาย

We will count holes given in holes[]
12345 ( 1+1+0+0+1)

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

เพียงใช้ตัวเลขซ้ายสุดแต่ละหลักโดยใช้ num%10 และเพิ่มจำนวนรูจากรู[num%10]เพื่อนับ แล้วลดจำนวนลง 10

  • ใช้จำนวนเต็มเป็นอินพุต

  • เริ่มต้นอาร์เรย์[] ของรู

  • ฟังก์ชัน holes_integer(int number, int holes[]) ส่งคืนค่าจำนวนหลุมในจำนวนเต็ม

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

  • ข้ามจนถึงหมายเลข> 0

  • ใช้หลักซ้ายสุดเป็น temp =หมายเลข % 10 เพิ่ม holes[temp] เพื่อนับ

  • ลดจำนวนลง 10

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

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int holes_integer(int number, int holes[]){
   int count = 0;
   while (number > 0){
      int temp = number % 10;
      count = count + holes[temp];
      number = number/10;
   }
   return count;
}
int main(){
   int number = 239143;
   int holes[] = { 2, 1, 1, 0, 0, 1, 1, 1, 0};
   cout<<"Count the number of holes in an integer are: "<<holes_integer(number, holes);
   return 0;
}

ผลลัพธ์

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

Count the number of holes in an integer are: 2