Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,845 questions

51,766 answers

573 users

How to print all possible ways to write a number (N) as a sum of two or more positive integers in Java

1 Answer

0 votes
import java.util.ArrayList;
import java.util.List;

public class AllWaysToWriteANumberAsSumOfTwoOrMoreInts_Java {
    public static void printList(List<Integer> list) {
        if (list.size() != 1) {
            for (int i = 0; i < list.size(); i++) {
                if (i < list.size() - 1) {
                    System.out.print(list.get(i) + " + ");
                } else {
                    System.out.print(list.get(i));
                }
            }
        }
        System.out.println();
    }

    public static void allWaysToWriteANumberAsSumOfTwoOrMoreInts(List<Integer> list, int i, int n) {
        if (n == 0) {
            printList(list);
        }

        for (int j = i; j <= n; j++) {
            list.add(j);
            allWaysToWriteANumberAsSumOfTwoOrMoreInts(list, j, n - j);
            list.remove(list.size() - 1);
        }
    }

    public static void main(String[] args) {
        int n = 5; // The number

        List<Integer> list = new ArrayList<>();
        
        allWaysToWriteANumberAsSumOfTwoOrMoreInts(list, 1, n);
    }
}



/*
run:

1 + 1 + 1 + 1 + 1
1 + 1 + 1 + 2
1 + 1 + 3
1 + 2 + 2
1 + 4
2 + 3

*/

 



answered Aug 3, 2024 by avibootz
...