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

จำนวนขั้นต่ำที่มีหลักเป็นและ 7 เท่านั้นและให้ผลรวมใน C++


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

เลขนำโชคคือจำนวนเต็มบวกที่มีการแสดงทศนิยมประกอบด้วยเลขนำโชค 4 และ 7 เท่านั้น ภารกิจคือการหาเลขนำโชคขั้นต่ำที่มีผลรวมของหลักเท่ากับ n

ตัวอย่าง

ถ้าผลรวม =22 เลขนำโชคคือ 4477 เท่ากับ 4 + 4 + 7 + 7 =22

อัลกอริทึม

<ก่อน>1. ถ้าผลรวมเป็นทวีคูณของ 4 ผลลัพธ์จะมีทั้งหมด 4s 2. ถ้าผลรวมเป็นทวีคูณของ 7 ผลลัพธ์จะมีทั้งหมด 7 วินาที 3. ถ้าผลรวมไม่เป็นทวีคูณของ 4 หรือ 7 เราก็สามารถลบหนึ่งในนั้นออกจนผลรวมกลายเป็นทวีคูณของอีกจำนวนหนึ่งได้

ตัวอย่าง

#include ใช้เนมสเปซ std;เป็นโมฆะ luckyNumber (ผลรวม int) { int a, b; a =b =0; ในขณะที่ (ผลรวม> 0) { ถ้า (ผลรวม % 7 ==0) { ++b; ผลรวม =ผลรวม - 7; } อื่น ๆ ถ้า (ผลรวม % 4 ==0) { ++a; ผลรวม =ผลรวม - 4; } อื่น ๆ { ++a; ผลรวม =ผลรวม - 4; } } ศาล <<"ตอบ ="; ถ้า (ผลรวม <0) { cout <<"-1\n" < 

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

ผลลัพธ์

คำตอบ =4477