ให้ d (จำนวนหลัก) และ num งานคือหาจำนวน d หลักที่หาร num ลงตัว
เช่น d=2 หมายถึงเลข 10-99 หาตัวที่หาร num ลงตัว
อินพุต − digit = 2, num = 12
เอาต์พุต − 8 (12,24,36,48,60,72,84,96)
อินพุต − digit = 2, num = 9
เอาต์พุต − 10 (18,27,36,45,54,63,72,81,90,99)
แนวทาง
คำนวณ digi_first = 10^(digit-1), digi_last = 10^digit
หา d_first = digi_first % num, 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)
ตัวอย่าง
#include <cmath>
#include <iostream>
using namespace std;
int main(){
int digit = 2, num = 9;
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