Skip to content

Commit 78e5030

Browse files
Different addends
1 parent 6fe234d commit 78e5030

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package algorithms.different_addends;
2+
3+
import java.util.LinkedList;
4+
import java.util.Scanner;
5+
6+
public class Main {
7+
public static void main(String[] args) {
8+
Scanner scanner = new Scanner(System.in);
9+
int number = scanner.nextInt();
10+
int addendsNumber = 1;
11+
int sum = 1;
12+
int currentAddend = 1;
13+
if (number == 2) {
14+
sum = 2;
15+
currentAddend = 2;
16+
}
17+
LinkedList<Integer> addendsList = new LinkedList<>();
18+
addendsList.push(currentAddend);
19+
while (sum != number) {
20+
currentAddend++;
21+
int remainder = number - sum - currentAddend;
22+
if (remainder < currentAddend + 1 && remainder != 0) {
23+
continue;
24+
}
25+
sum += currentAddend;
26+
addendsList.push(currentAddend);
27+
addendsNumber++;
28+
}
29+
StringBuilder outputBuilder = new StringBuilder();
30+
outputBuilder.append(String.format("%d\n", addendsNumber));
31+
for (Integer addend : addendsList) {
32+
outputBuilder.append(String.format("%d ", addend));
33+
}
34+
System.out.println(outputBuilder.toString());
35+
}
36+
}

0 commit comments

Comments
 (0)