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

ตรวจสอบว่าตัวเลขที่ระบุหารผลรวมของแฟคทอเรียลของหลักใน C++ . หรือไม่


สมมุติว่า เรามีจำนวนเต็ม เราต้องหาว่าตัวเลขนั้นหารผลรวมของแฟคทอเรียลของตัวเลขนั้นหรือไม่ สมมติว่าตัวเลขคือ 19 ผลรวมของแฟคทอเรียลของหลักคือ (1! + 9!) =362881 ซึ่งหารด้วย 19 ลงตัว

ในการแก้ปัญหานี้ เราจะนำตัวเลขมา จากนั้นคำนวณแฟกทอเรียลของแต่ละหลักแล้วบวกผลรวม หากผลรวมหารด้วยตัวตัวเลขเองได้ ให้คืนค่าจริงหรือเท็จ

ตัวอย่าง

#include <iostream>
using namespace std;
int factorial(int n){
   if(n == 1 || n == 0)
      return 1;
   return factorial(n - 1) * n;
}
bool isDigitsFactDivByNumber(int num){
   int temp = num;
   int sum = 0;
   while(num){
      int digit = num % 10;
      sum += factorial(digit);
      num /= 10;
   }if(sum%temp == 0){
      return true;
   } return false;
}
int main() {
   int number = 19;
   if (isDigitsFactDivByNumber(number))
      cout << "Yes, the number can divides the sum of factorial of digits.";
   else
      cout << "No, the number can not divides the sum of factorial of digits.";
}

ผลลัพธ์

Yes, the number can divides the sum of factorial of digits.