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

นับ n ตัวเลขหารด้วยตัวเลขที่กำหนดใน C++


เราได้รับองค์ประกอบทั้งสองเช่น d และ num ภารกิจคือการหาตัวเลข d หลักที่หารด้วย num ลงตัว

พูดง่ายๆ ก็คือ สมมติว่าเราได้ใส่ค่า 2 ใน d แล้ว ขั้นแรกเราจะหาตัวเลข 2 หลักทั้งหมด นั่นคือตั้งแต่ 10-99 แล้วจึงหาตัวเลขทั้งหมดที่หารด้วย num ลงตัว

ให้เราเข้าใจสิ่งนี้มากขึ้นด้วยความช่วยเหลือของตัวอย่าง -

ป้อนข้อมูล − หลัก =2, num=12

ผลลัพธ์ − จำนวน n หลักหารด้วยตัวเลขที่กำหนด:8

คำอธิบาย − ตัวเลข 2 หลักที่หารด้วย 12 ได้คือ 12, 24, 36, 48, 60, 72, 84 และ 96 จึงมีตัวเลข 8 ตัวหารด้วย 12 ได้ 8 ตัว

ป้อนข้อมูล − หลัก =2, num=9

ผลผลิต − จำนวน n หลักหารด้วยตัวเลขที่กำหนด − 10

คำอธิบาย − ตัวเลข 2 หลักที่หารด้วย 9 ได้คือ 18, 27, 36, 45, 54, 63, 72, 81, 90 และ 99 จึงมีตัวเลขสองหลัก 10 ตัวหารด้วย 9

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

  • ใช้ตัวเลขและตัวเลขขององค์ประกอบเป็นอินพุต

  • กำหนดตัวแปรนับเป็น 0 เพื่อนับจำนวนหลักหารด้วย num.

  • ประกาศและตั้งค่า digi_first เป็น pow(10, หลัก - 1)

  • ประกาศและตั้งค่า digi_last เป็น pow (10 หลัก)

  • ตอนนี้ประกาศและตั้งค่า d_first เป็น digi_first % num และ d_last เป็น digi_last % num

  • หลังจากค้นหา d_first และ d_last แล้ว ให้ตั้งค่า digi_first เป็น (digi_first - d_first) + num และ digi_last เป็น digi_last - d_last

  • ตอนนี้ตั้งค่าการนับเป็น ((digi_last - digi_first) / num + 1)

  • ส่งคืนและพิมพ์นับ

ตัวอย่าง

#include <cmath>
#include <iostream>
using namespace std;
int main(){
   int digit = 2 , num = 9;
   //store the count
   int count= 0 ;
   int digi_first = pow(10, digit - 1);
   int digi_last = pow(10, digit);
   int d_first = digi_first % num;
   int d_last = digi_last % num;
   digi_first = (digi_first - d_first) + num;
   digi_last = digi_last - d_last;
   count = ((digi_last - digi_first) / num + 1);
   cout<<"Count of n digit numbers divisible by given number: "<<count<<"\n";
   return 0;
}

ผลลัพธ์

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

Count of n digit numbers divisible by given number: 10