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

นับตัวเลขในจำนวนที่กำหนด N ซึ่งหาร N ใน C++


เราได้ตัวเลขมา สมมุติว่า N และภารกิจคือการหาจำนวนหลักเหล่านั้นในตัวเลขที่หารจำนวน N

ข้อควรจำ

  • หากตัวเลขเป็น 0 ก็ควรเพิกเฉยซึ่งหมายความว่าจำนวนจะไม่เพิ่มขึ้นเป็น 0

  • หากตัวเลขปรากฏสองครั้งและหารตัวเลข การนับจะขึ้นอยู่กับการเกิดหลัก ตัวอย่างเช่น เราให้ตัวเลข 2240 และในตัวเลขนี้ทุกหลักยกเว้น 0 จะหารตัวเลขและ 2 เกิดขึ้นสองครั้ง จากนั้นนับเป็น 2 สำหรับหลัก 2

ป้อนข้อมูล − หมายเลข =2240

ผลผลิต − นับเป็น 3

คำอธิบาย − แบ่งตัวเลขออกเป็นหลัก ๆ แล้วจะเป็น 2, 2, 4, 0 ตอนนี้ตรวจสอบว่า 2 หาร 2240 หรือไม่ ถ้าใช่ ให้เพิ่มจำนวนอื่นย้ายไปหลักถัดไป ในหมายเลขนี้ 2, 2, 4 หารหลัก 2240 ให้นับ จะเป็น 3 และละเว้นเลข 0 ทุกกรณี

ป้อนข้อมูล − ตัวเลข =755

ผลผลิต − นับเป็น 2

คำอธิบาย − แบ่งตัวเลขออกเป็นหลัก ๆ แล้วจะเป็น 7, 5, 5 ทีนี้ลองเช็คดูว่า 7 หาร 755 ไหม ถ้าใช่แล้วให้เพิ่มจำนวนอื่นย้ายไปหลักถัดไป ในตัวเลขนี้ 5, 5 หารหลัก 755 ดังนั้นการนับจะเป็น 2 และ ละเว้นเลข 0 ทุกกรณี

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

  • ใส่ตัวเลขในตัวแปรจำนวนเต็ม สมมุติว่า num

  • เริ่มวนซ้ำจนกว่า num จะมากกว่า 0

  • ภายในลูป แบ่งตัวเลขเป็นตัวเลขและเก็บผลลัพธ์ไว้ในตัวแปร สมมุติว่า rem

  • ตรวจสอบว่า rem หารตัวเลขหรือไม่ ถ้าใช่ ให้เพิ่มค่าของตัวแปรการนับขึ้น 1 และหากไม่ใช่ อย่าเพิ่งเพิ่มค่าของตัวแปรการนับ

  • และคำสั่งตรวจสอบนี้จะถูกนำไปใช้เมื่อ rem มากกว่า 0 เนื่องจากเราต้องละเว้น 0

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;
int count(int num){
   int a=num;
   int count=0,rem;
   while(a>0){
      rem=a%10;
      if(rem > 0){
         if(num%rem==0){
            count++;
         }
      }
      a=a/10;
   }
   return count;
}
int main(){
   int num = 2240;
   cout<<"Count of digits in given number "<<num<<" which divide N are: "<<count(num);
   return 0;
}

ผลลัพธ์

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

Count of digits in given number 2240 which divide N are: 3