0
import java.util.Scanner;

public class NoneAreSimilar {

    public static void main (String[] args) {
    Scanner in = new Scanner(System.in);
        System.out.println("Enter your value: " ); 
        int value = in.nextInt();

        if(value < 1) { 
            System.out.println("Wrong input");
            System.exit(0);
        }
        if (value == 1 || value == 2 || value == 3) {
            System.out.println("There are no ways to represent "
                + value + " as a sum of 4 terms");
            System.exit(0);
        }

        if (value == 4) {
            System.out.println("1 + 1 + 1 = 4");
            System.out.println("There is 1 way to represent "
                + value + " as a sum of 4 terms");
            System.exit(0);
        }

           int count = 0;

           for (int a1 = 1; a1 <= value; a1++) {
               for (int b2 = 1; b2 <= value; b2++) {
                   for (int c3 = 1; c3 <= value; c3++) {
                       for (int d4 = 2; d4 <= value; d4++) {
               int added = a1 + b2 + c3 + d4; 

               if (added == value) {
                   count++; 
                   System.out.println( a1 + "+" + b2 + "+" + c3 + "+" + d4 + "=" + value);

               }

                       }
                   }
                }
            }
         System.out.println("There are only " + count + 
          " ways to represent the number " + value + " as a sum of 4 terms");
    }
}

私のコードは現在動作していますが、同様のシーケンスを無視することに問題があります。つまり、8 を入力すると、 1+1+2+4 を出力し、 this を再配置する他の方法を無視するようにします(1+2+4+1, 1+2+1+4, etc)。if ステートメントを試してみましたが、7 以降は機能しなくなり、別の値で開始しようとしましたが、8 以降は機能しなくなります。for ループの値を別の場所で開始する必要があるように感じますが、どこで開始するかわかりません。どこで調整する必要があるかを判断するのを手伝ってもらえますか?

4

0 に答える 0