複数の整数の合計が21になる組み合わせの算出

2~4つの整数の合計が特定の数になる数値の組み合わせを算出します。
用途はごくごく限られると思いますが、手計算で行うと地味に時間がかかるので書いてみました。
カウンタの数とwhile文のネストを変えれば変数の数の変化にも対応できます。

```kotlin:main.kt
fun main(args: Array<String>) {
        //元数値作成
        val aon= arrayListOf<Int>()

        var i=0
        while (i<=20){
            aon.add(20-i)
            i+=1
        }


        //組み合わせのカウンタ
        var one = 0
        var two = 0
        var thr = 0
        var fur = 0



        //格納用
        val answer_21 = arrayListOf<String>()
        val answer_20 = arrayListOf<String>()
        val answer_19 = arrayListOf<String>()



        //組み合わせ調査開始
        while(one <aon.count()){
            two = one

            while (two <aon.count()){
                thr =two

                while (thr <aon.count()){
                    fur = thr

                    while (fur<aon.count()){



                        if((aon[one]+aon[two]+aon[thr]+aon[fur])==21){

                            answer_21.add(aon[one].toString()+"_"+aon[two].toString()+"_"+aon[thr].toString()+"_"+aon[fur].toString())

                        }

                        if((aon[one]+aon[two]+aon[thr]+aon[fur])==20){

                            answer_20.add(aon[one].toString()+"_"+aon[two].toString()+"_"+aon[thr].toString()+"_"+aon[fur].toString())

                        }

                        if((aon[one]+aon[two]+aon[thr]+aon[fur])==19){

                            answer_19.add(aon[one].toString()+"_"+aon[two].toString()+"_"+aon[thr].toString()+"_"+aon[fur].toString())

                        }


                        fur +=1
                    }


                 thr +=1
                }

              two+=1
            }

            one+=1
        }


        //正解の出力
        print("21になる組み合わせは・・・")
        println(answer_21)
    
        print("20になる組み合わせは・・・")
        println(answer_20)
    
        print("19になる組み合わせは・・・")
        println(answer_19)
    
    
}


```

```
21になる組み合わせは・・・[20_1_0_0, 19_2_0_0, 19_1_1_0, 18_3_0_0, 18_2_1_0, 18_1_1_1, 17_4_0_0, 17_3_1_0, 17_2_2_0, 17_2_1_1, 16_5_0_0, 16_4_1_0, 16_3_2_0, 16_3_1_1, 16_2_2_1, 15_6_0_0, 15_5_1_0, 15_4_2_0, 15_4_1_1, 15_3_3_0, 15_3_2_1, 15_2_2_2, 14_7_0_0, 14_6_1_0, 14_5_2_0, 14_5_1_1, 14_4_3_0, 14_4_2_1, 14_3_3_1, 14_3_2_2, 13_8_0_0, 13_7_1_0, 13_6_2_0, 13_6_1_1, 13_5_3_0, 13_5_2_1, 13_4_4_0, 13_4_3_1, 13_4_2_2, 13_3_3_2, 12_9_0_0, 12_8_1_0, 12_7_2_0, 12_7_1_1, 12_6_3_0, 12_6_2_1, 12_5_4_0, 12_5_3_1, 12_5_2_2, 12_4_4_1, 12_4_3_2, 12_3_3_3, 11_10_0_0, 11_9_1_0, 11_8_2_0, 11_8_1_1, 11_7_3_0, 11_7_2_1, 11_6_4_0, 11_6_3_1, 11_6_2_2, 11_5_5_0, 11_5_4_1, 11_5_3_2, 11_4_4_2, 11_4_3_3, 10_10_1_0, 10_9_2_0, 10_9_1_1, 10_8_3_0, 10_8_2_1, 10_7_4_0, 10_7_3_1, 10_7_2_2, 10_6_5_0, 10_6_4_1, 10_6_3_2, 10_5_5_1, 10_5_4_2, 10_5_3_3, 10_4_4_3, 9_9_3_0, 9_9_2_1, 9_8_4_0, 9_8_3_1, 9_8_2_2, 9_7_5_0, 9_7_4_1, 9_7_3_2, 9_6_6_0, 9_6_5_1, 9_6_4_2, 9_6_3_3, 9_5_5_2, 9_5_4_3, 9_4_4_4, 8_8_5_0, 8_8_4_1, 8_8_3_2, 8_7_6_0, 8_7_5_1, 8_7_4_2, 8_7_3_3, 8_6_6_1, 8_6_5_2, 8_6_4_3, 8_5_5_3, 8_5_4_4, 7_7_7_0, 7_7_6_1, 7_7_5_2, 7_7_4_3, 7_6_6_2, 7_6_5_3, 7_6_4_4, 7_5_5_4, 6_6_6_3, 6_6_5_4, 6_5_5_5]
20になる組み合わせは・・・[20_0_0_0, 19_1_0_0, 18_2_0_0, 18_1_1_0, 17_3_0_0, 17_2_1_0, 17_1_1_1, 16_4_0_0, 16_3_1_0, 16_2_2_0, 16_2_1_1, 15_5_0_0, 15_4_1_0, 15_3_2_0, 15_3_1_1, 15_2_2_1, 14_6_0_0, 14_5_1_0, 14_4_2_0, 14_4_1_1, 14_3_3_0, 14_3_2_1, 14_2_2_2, 13_7_0_0, 13_6_1_0, 13_5_2_0, 13_5_1_1, 13_4_3_0, 13_4_2_1, 13_3_3_1, 13_3_2_2, 12_8_0_0, 12_7_1_0, 12_6_2_0, 12_6_1_1, 12_5_3_0, 12_5_2_1, 12_4_4_0, 12_4_3_1, 12_4_2_2, 12_3_3_2, 11_9_0_0, 11_8_1_0, 11_7_2_0, 11_7_1_1, 11_6_3_0, 11_6_2_1, 11_5_4_0, 11_5_3_1, 11_5_2_2, 11_4_4_1, 11_4_3_2, 11_3_3_3, 10_10_0_0, 10_9_1_0, 10_8_2_0, 10_8_1_1, 10_7_3_0, 10_7_2_1, 10_6_4_0, 10_6_3_1, 10_6_2_2, 10_5_5_0, 10_5_4_1, 10_5_3_2, 10_4_4_2, 10_4_3_3, 9_9_2_0, 9_9_1_1, 9_8_3_0, 9_8_2_1, 9_7_4_0, 9_7_3_1, 9_7_2_2, 9_6_5_0, 9_6_4_1, 9_6_3_2, 9_5_5_1, 9_5_4_2, 9_5_3_3, 9_4_4_3, 8_8_4_0, 8_8_3_1, 8_8_2_2, 8_7_5_0, 8_7_4_1, 8_7_3_2, 8_6_6_0, 8_6_5_1, 8_6_4_2, 8_6_3_3, 8_5_5_2, 8_5_4_3, 8_4_4_4, 7_7_6_0, 7_7_5_1, 7_7_4_2, 7_7_3_3, 7_6_6_1, 7_6_5_2, 7_6_4_3, 7_5_5_3, 7_5_4_4, 6_6_6_2, 6_6_5_3, 6_6_4_4, 6_5_5_4, 5_5_5_5]
19になる組み合わせは・・・[19_0_0_0, 18_1_0_0, 17_2_0_0, 17_1_1_0, 16_3_0_0, 16_2_1_0, 16_1_1_1, 15_4_0_0, 15_3_1_0, 15_2_2_0, 15_2_1_1, 14_5_0_0, 14_4_1_0, 14_3_2_0, 14_3_1_1, 14_2_2_1, 13_6_0_0, 13_5_1_0, 13_4_2_0, 13_4_1_1, 13_3_3_0, 13_3_2_1, 13_2_2_2, 12_7_0_0, 12_6_1_0, 12_5_2_0, 12_5_1_1, 12_4_3_0, 12_4_2_1, 12_3_3_1, 12_3_2_2, 11_8_0_0, 11_7_1_0, 11_6_2_0, 11_6_1_1, 11_5_3_0, 11_5_2_1, 11_4_4_0, 11_4_3_1, 11_4_2_2, 11_3_3_2, 10_9_0_0, 10_8_1_0, 10_7_2_0, 10_7_1_1, 10_6_3_0, 10_6_2_1, 10_5_4_0, 10_5_3_1, 10_5_2_2, 10_4_4_1, 10_4_3_2, 10_3_3_3, 9_9_1_0, 9_8_2_0, 9_8_1_1, 9_7_3_0, 9_7_2_1, 9_6_4_0, 9_6_3_1, 9_6_2_2, 9_5_5_0, 9_5_4_1, 9_5_3_2, 9_4_4_2, 9_4_3_3, 8_8_3_0, 8_8_2_1, 8_7_4_0, 8_7_3_1, 8_7_2_2, 8_6_5_0, 8_6_4_1, 8_6_3_2, 8_5_5_1, 8_5_4_2, 8_5_3_3, 8_4_4_3, 7_7_5_0, 7_7_4_1, 7_7_3_2, 7_6_6_0, 7_6_5_1, 7_6_4_2, 7_6_3_3, 7_5_5_2, 7_5_4_3, 7_4_4_4, 6_6_6_1, 6_6_5_2, 6_6_4_3, 6_5_5_3, 6_5_4_4, 5_5_5_4]
```