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

ค้นหาจำนวนหลักในตัวเลขที่หารตัวเลขใน C++


สมมุติว่าให้หมายเลข เราต้องนับจำนวนหลักของตัวเลขที่หารจำนวนเท่าๆ กัน สมมติว่าตัวเลขคือ 1,012 ผลลัพธ์คือ 3 มีสามหลัก 1, 1 และ 2 ที่หาร 1012 อย่างเท่าเทียมกัน

ในการแก้ปัญหานี้ เราจะหาตัวเลขแต่ละหลักของตัวเลข โดยใช้การทำงานของโมดูลัส และตรวจสอบว่าตัวเลขนั้นหารด้วยหลักนั้นได้หรือไม่ ถ้าหารได้ ให้เพิ่มตัวนับ หากตัวเลขเป็น 0 ก็ไม่ต้องสนใจตัวเลขนั้น

ตัวอย่าง

#include<iostream>
using namespace std;
   int countDivDigit(int num) {
   int count = 0;
   int temp = num;
   while(temp){
      int div = temp%10;
      if(div != 0){
         if(num % div == 0)
            count++;
      }
      temp /= 10;
   }
   return count;
}
int main() {
   int num = 1012;
   cout << "Number of digits that divides " << num << " evenly, is: " << countDivDigit(num);
}

ผลลัพธ์

Number of digits that divides 1012 evenly, is: 3