คำชี้แจงปัญหา
เลขนำโชคคือจำนวนเต็มบวกที่มีการแสดงทศนิยมประกอบด้วยเลขนำโชค 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