จำนวนคำตอบที่เป็นเลขจำนวนเต็มไม่ลบของ x₁+⋯+x_k=n คือ C(n+k−1,k−1), สำหรับ n≥0 และ k≥1 แสดง n ดาวเหมือนกันแยกเข้ากล่องที่มีชื่อ k กล่องโดยใช้แท่งกั้น k−1 แท่ง; แท่งติดกันและแท่งปลายอนุญาตให้มีค่าเป็นศูนย์ กล่องสามารถแยกแยะกันได้ วัตถุไม่สามารถแยกแยะได้ การนับtoken ที่แตกต่างกันจะกำหนดให้แต่ละ token อย่างอิสระ ทำให้ได้ k^n ก่อนข้อจำกัดอื่น ๆ ตัดสินใจโมเดลจากสิ่งที่วัตถุและผู้รับแทน ไม่ใช่จากสัมประสิทธิ์ทวินามที่ดูคุ้นเคย
สำหรับการจัดสรรค่า x_i ≥ 1 ที่เป็นบวก ให้กำหนด z_i = x_i − 1; ผลรวมที่เหลือคือ n−k ซึ่งจะได้ C(n−1, k−1) เมื่อ n≥k การหาขอบเขตล่างที่กว้างขึ้น x_i ≥ a_i สามารถจัดการได้โดยการลบแต่ละ a_i ออก หากมีอย่างน้อยหนึ่งศูนย์ จะเท่ากับส่วนเสริมของกรณีที่มีค่าบวกทั้งหมด: นำ C(n−1, k−1) ไปลบออกจากผลรวมที่เป็นเลขไม่ลบติด แต่กรณีซ้อนทับเช่น กล่องว่างพอดีสองกล่อง ต้องใช้วิธีการนับที่ต่างกัน; การลบแต่ละกรณีกล่องว่างออกอย่างอิสระจะทำให้การตัดซ้อนทับถูกนับซ้ำ
ติดตามแผนภาพการไหลโดยดำเนินการตามคำสั่งทีละบรรทัด และบันทึกค่าตัวแปรในตาราง แยกแยะระหว่างการจัดค่า (assignment) และการทดสอบความเท่ากันทางคณิตศาสตร์; ด้านขวาของการจัดค่าจะใช้ค่าเก่าก่อนการแทนที่ บันทึกว่าสาขาใดจะทำงานต่อไปและตัวแปรใดถูกรีเซ็ต ผู้เข้าแข่งขันรอบนอกใหม่อาจรีเซ็ตผลรวมภายในโดยไม่รีเซ็ตผู้เข้าแข่งขันนั้น สำหรับกระบวนการที่เพิ่ม 1,3,5,… ไปยัง S จากศูนย์ หลังจาก m ครั้งการเพิ่ม S=m² และตัวเพิ่มถัดไปคือ 2m+1
A loop invariant is true before and after each iteration. The square-sum invariant holds initially at m=0 and is preserved because m²+(2m+1)=(m+1)². An invariant alone does not prove termination. To test whether an integer N≥0 is square by adding odd numbers until S≥N, S grows without bound; equivalently m increases and must reach a bound such as N. At exit, equality means square and overshoot means nonsquare. A printed value must be reached on an actual execution path; a plausible numerical pattern alone is not a trace.