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

จำนวนเงื่อนไขกำลังขั้นต่ำที่มีผลรวมเท่ากับ n โดยใช้ C ++


คำชี้แจงปัญหา

กำหนดจำนวนเต็มบวกสองจำนวน N และ X ภารกิจคือแสดง N เป็นผลรวมของยกกำลัง X (X0 + X1 +…..+ Xn) โดยที่จำนวนยกกำลังของ X ควรมีค่าน้อยที่สุด

พิมพ์จำนวนกำลังขั้นต่ำของ N ที่ใช้ทำผลรวมเท่ากับ N

ถ้า N =15 และ X =3 เราต้องการ 3 ยกกำลังของ '3' ดังนี้ −

15 =(3 2 + 3 1 + 3 1 )

อัลกอริทึม

ใช้สูตรด้านล่างเพื่อคำนวณผลลัพธ์สุดท้าย -

<ก่อน>1. ถ้า x =1 คำตอบจะเป็น n เท่านั้น (n =1 + 1 +…. n ครั้ง)s2 ตัวเลขใดๆ n สามารถแสดงเป็น n =x * a + b โดยที่ 0 −=b −=x-1 ตอนนี้เนื่องจาก b อยู่ระหว่าง 0 ถึง x – 1 ดังนั้น b ควรแสดงเป็นผลรวมของ x0 b ครั้ง

ตัวอย่าง

#include ใช้เนมสเปซ std;int minNumOfPower (int n, int x){ if (x ==1) { return n; } ผลลัพธ์ int =0; ในขณะที่ (n> 0) { ผล =ผล + (n % x); n =n / x; } ส่งคืนผลลัพธ์;}int main(){ int n =15; int x =3; cout <<"จำนวนขั้นต่ำของอำนาจ =" < 

ผลลัพธ์

เมื่อคุณคอมไพล์และรันโปรแกรมข้างต้น มันสร้างผลลัพธ์ต่อไปนี้ -

จำนวนพลังขั้นต่ำ =3