Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมแบ่งเลขเป็นจำนวน Deci-Binary น้อยที่สุดใน Python


สมมติว่าเรามีตัวเลข n ในรูปแบบสตริง เราต้องหาจำนวน deci-binary numbers น้อยที่สุดที่จำเป็น ผลรวมของพวกเขาเท่ากับ n Deci-binary number คือเลขฐานสิบที่ตัวเลขแต่ละหลักเป็น 0 หรือ 1 เท่านั้น

เช่น ถ้าอินพุตคือ n = "132" ผลลัพธ์จะเป็น 3 เพราะ 132 เป็นผลรวมของสาม deci-binary number (10 + 11 + 111)

วิธีแก้ปัญหา

  • result := 1
  • สำหรับแต่ละ i ใน n:
    • ถ้า i ไม่อยู่ใน {0,1}: result := max(result, int(i))
  • return result

ตัวอย่าง

def solve(n):
    result = 1
    for i in n:
        if i not in {0,1}:
            result = max(result, int(i))
    return result

n = "132"
print(solve(n))

อินพุต

132

เอาต์พุต

3