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

ตัวเลข Dudeney ใน C++


ตัวเลขทางคณิตศาสตร์ที่กำหนดในทฤษฎีจำนวนใน ฐานจำนวนที่กำหนดเป็นจำนวนธรรมชาติที่เท่ากับลูกบาศก์สมบูรณ์ของจำนวนธรรมชาติอื่น โดยที่ผลรวมหลักของจำนวนธรรมชาติตัวแรกจะเท่ากับผลรวมหลักของตัวเลขที่สอง (วิกิพีเดีย)

ตัวเลขนี้ถูกพบโดย Henry Dudeney . สูตรทางคณิตศาสตร์ คือ −

ตัวเลข Dudeney ใน C++

ในที่นี้เราได้รับจำนวนเต็ม n งานของเราคือ ตรวจสอบว่าหมายเลขที่กำหนด n เป็นหมายเลขของเพื่อนหรือไม่

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

ป้อนข้อมูล: ไม่มี =17592

ผลลัพธ์: ไม่

คำอธิบาย:

เบอร์ที่ให้มาไม่ใช่เบอร์สำรอง

แนวทางการแก้ปัญหา -

วิธีแก้ปัญหาอยู่ในคำจำกัดความพื้นฐานของ dudeney number ตัวเลขคือ หมายเลขดูนี่ย์โดยพิจารณาจากข้อเท็จจริงที่ว่ารากที่สามของตัวเลขนั้นเท่ากับผลรวมของหลักนั้น .

อัลกอริทึม −

ขั้นตอนที่ 1: ตรวจสอบว่า n เป็นลูกบาศก์ที่สมบูรณ์แบบหรือไม่

ขั้นตอนที่ 2.1: ถ้าใช่ ให้ตรวจสอบว่ารากที่สามของ n =ผลรวมของตัวเลขของ n หรือไม่

ขั้นตอนที่ 2.2.1: ถ้าใช่ ตัวเลขก็คือ หมายเลขดูนี่ย์

ขั้นตอนที่ 2.2.2: หากไม่ แสดงว่าหมายเลขนั้นไม่ใช่หมายเลข Dudeney

ขั้นตอนที่ 2.2: หากไม่ แสดงว่าไม่ใช่หมายเลข Dudeney

โปรแกรม C++ เพื่อแสดงการทำงานของอัลกอริทึมของเรา -

ตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

int calcDigitSum(int n){

   int digitSum = 0;
   int digitVal;
   while (n > 0) {
      digitVal = n % 10;
      digitSum += digitVal;
      n /= 10;
   }
   return digitSum;
   
}
int checkDudeney(int N) {
   
   int cubeRoot = int( round( cbrt(N) ) );
   
   if(pow(cubeRoot, 3.0) != N){
      return 0;
   }

   int sumOfDigit = calcDigitSum(N);
   
   if (cubeRoot != sumOfDigit)
      return 0;

   return 1;
}

int main() {
   int N = 104323;
   cout<<"The number "<<N;
   if (checkDudeney(N))
      cout<<" is a dudeney number.";
   else
      cout<<" is not a dudeney number.";
   return 0;
}

ผลลัพธ์ -

The number 104323 is not a dudeney number.