Banyaknya solusi bilangan bulat nonnegatif dari x₁+⋯+x_k=n adalah C(n+k−1,k−1), untuk n≥0 dan k≥1. Representasikan n bintang identik yang dipisahkan ke dalam k kotak bernama oleh k−1 garis pemisah; garis di antara dan di ujung mengizinkan entri nol. Kotak dapat dibedakan, objek tidak. Menghitung token berbeda akan menetapkan setiap token secara independen, menghasilkan k^n sebelum batasan lainnya. Tentukan model berdasarkan apa yang diwakili oleh objek dan penerima, bukan dari koefisien binomial yang terlihat familiar.
Untuk alokasi positif x_i≥1, tetapkan z_i=x_i−1; total tersisa adalah n−k, menghasilkan C(n−1,k−1) ketika n≥k. Batas bawah umum x_i≥a_i ditangani dengan mengurangi setiap a_i. Minimal satu nol adalah komplemen dari semua entri positif: kurangi C(n−1,k−1) dari total nonnegatif. Kasus tumpang tindih seperti tepat dua kotak kosong memerlukan penghitungan berbeda; mengurangi setiap kasus kotak kosong secara independen akan menghitung ganda irisan mereka.
Telusuri bagan alur satu pernyataan yang dieksekusi pada satu waktu, mencatat variabel dalam tabel. Bedakan penugasan dari uji kesamaan matematis; sisi kanan penugasan menggunakan nilai lama sebelum penggantian. Catat cabang mana yang dieksekusi selanjutnya dan variabel mana yang direset. Kandidat loop luar baru mungkin menj重置 jumlah dalam tanpa mereset kandidat itu sendiri. Untuk proses yang menambahkan 1,3,5,… ke S dari nol, setelah m penambahan S=m² dan penambah berikutnya adalah 2m+1.
Invarian perulangan benar sebelum dan setelah setiap iterasi. Invarian jumlah kuadrat berlaku awalnya pada m=0 dan dipertahankan karena m²+(2m+1)=(m+1)². Invarian saja tidak membuktikan terminasi. Untuk menguji apakah bilangan bulat N≥0 adalah kuadrat dengan menambah bilangan ganjil hingga S≥N, S tumbuh tanpa batas; ekuivalennya m meningkat dan harus mencapai batas seperti N. Pada keluaran, kesamaan berarti kuadrat dan kelebihan berarti bukan kuadrat. Nilai yang dicetak harus dicapai pada jalur eksekusi aktual; pola numerikal yang masuk akal saja bukan merupakan pelacakan.