# Print all non-increasing sequence of sum equal to a given number k

Here given code implementation process.

// C Program
// Print all non-increasing sequences of sum equal to a given number k
#include <stdio.h>

void subSequences(int result[], int start, int count, int sum, int k)
{
if (sum == k)
{
// Display of resultant decreasing subsequence
for (int i = count - 1; i >= 0; --i)
{
// Display element value
printf(" %d", result[i]);
}
printf("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
for (int i = start; i <= k; ++i)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
subSequences(result, i, count + 1, sum + i, k);
}
}
}
// Handles the request to find resultant subsequences
void findSequence(int k)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
int result[k];
printf("Given K : %d \n",k);
subSequences(result, 1, 0, 0, k);
}
int main()
{
// Test A
int k = 6;
findSequence(k);
// Test B
k = 4;
findSequence(k);
return 0;
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
// Java program for
// Print all non-increasing sequences of sum equal to a given number k
public class Combination
{
public void subSequences(int[] result,
int start,
int count,
int sum,
int k)
{
if (sum == k)
{
// Display of resultant decreasing subsequence
for (int i = count - 1; i >= 0; --i)
{
// Display element value
System.out.print(" " + result[i]);
}
System.out.print("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
for (int i = start; i <= k; ++i)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
subSequences(result, i, count + 1, sum + i, k);
}
}
}
// Handles the request to find resultant subsequences
public void findSequence(int k)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
int[] result = new int[k];
System.out.println("Given K : " + k);
subSequences(result, 1, 0, 0, k);
}
public static void main(String[] args)
{
// Test A
int k = 6;
// Test B
k = 4;
}
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
#include <iostream>

using namespace std;
// C++ program for
// Print all non-increasing sequences of sum equal to a given number k
class Combination
{
public: void subSequences(
int result[], int start,
int count, int sum, int k)
{
if (sum == k)
{
// Display of resultant decreasing subsequence
for (int i = count - 1; i >= 0; --i)
{
// Display element value
cout << " " << result[i];
}
cout << "\n";
}
else if (sum > k || count < 0)
{
return;
}
else
{
for (int i = start; i <= k; ++i)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
this->subSequences(result, i,
count + 1, sum + i, k);
}
}
}
// Handles the request to find resultant subsequences
void findSequence(int k)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
int result[k];
cout << "Given K : " << k << endl;
this->subSequences(result, 1, 0, 0, k);
}
};
int main()
{
// Test A
int k = 6;
// Test B
k = 4;
return 0;
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
// Include namespace system
using System;
// Csharp program for
// Print all non-increasing sequence of sum equal to a given number k
public class Combination
{
public void subSequences(
int[] result, int start,
int count, int sum, int k)
{
if (sum == k)
{
// Display of resultant decreasing subsequence
for (int i = count - 1; i >= 0; --i)
{
// Display element value
Console.Write(" " + result[i]);
}
Console.Write("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
for (int i = start; i <= k; ++i)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
this.subSequences(result, i, count + 1, sum + i, k);
}
}
}
// Handles the request to find resultant subsequences
public void findSequence(int k)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
int[] result = new int[k];
Console.WriteLine("Given K : " + k);
this.subSequences(result, 1, 0, 0, k);
}
public static void Main(String[] args)
{
// Test A
int k = 6;
// Test B
k = 4;
}
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
package main
import "fmt"
// Go program for
// Print all non-increasing sequence of
// sum equal to a given number k
type Combination struct {}
func getCombination() * Combination {
var me *Combination = &Combination {}
return me
}
func(this Combination) subSequences(result[] int,
start int, count int,
sum int, k int) {
if sum == k {
// Display of resultant decreasing subsequence
for i := count - 1 ; i >= 0 ; i-- {
// Display element value
fmt.Print(" ", result[i])
}
fmt.Print("\n")
} else if sum > k || count < 0 {
return
} else {
for i := start ; i <= k ; i++ {
// Collect elements
result[count] = i
// Find subsequence by using recursively
this.subSequences(result, i,
count + 1, sum + i, k)
}
}
}
// Handles the request to find resultant subsequences
func(this Combination) findSequence(k int) {
if k <= 0 {
return
}
// Auxiliary array which is collect result
var result = make([] int, k)
fmt.Println("Given K : ", k)
this.subSequences(result, 1, 0, 0, k)
}
func main() {
var task * Combination = getCombination()
// Test A
var k int = 6
// Test B
k = 4
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
<?php
// Php program for
// Print all non-increasing sequence of sum equal to a given number k
class Combination
{
public	function subSequences(\$result, \$start, \$count, \$sum, \$k)
{
if (\$sum == \$k)
{
// Display of resultant decreasing subsequence
for (\$i = \$count - 1; \$i >= 0; --\$i)
{
// Display element value
echo(" ".\$result[\$i]);
}
echo("\n");
}
else if (\$sum > \$k || \$count < 0)
{
return;
}
else
{
for (\$i = \$start; \$i <= \$k; ++\$i)
{
// Collect elements
\$result[\$count] = \$i;
// Find subsequence by using recursively
\$this->subSequences(\$result, \$i,
\$count + 1,
\$sum + \$i, \$k);
}
}
}
// Handles the request to find resultant subsequences
public	function findSequence(\$k)
{
if (\$k <= 0)
{
return;
}
// Auxiliary array which is collect result
\$result = array_fill(0, \$k, 0);
echo("Given K : ".\$k."\n");
\$this->subSequences(\$result, 1, 0, 0, \$k);
}
}

function main()
{
// Test A
\$k = 6;
// Test B
\$k = 4;
}
main();

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
// Node JS program for
// Print all non-increasing sequence of sum equal to a given number k
class Combination
{
subSequences(result, start, count, sum, k)
{
if (sum == k)
{
// Display of resultant decreasing subsequence
for (var i = count - 1; i >= 0; --i)
{
// Display element value
process.stdout.write(" " + result[i]);
}
process.stdout.write("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
for (var i = start; i <= k; ++i)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
this.subSequences(result, i,
count + 1,
sum + i,
k);
}
}
}
// Handles the request to find resultant subsequences
findSequence(k)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
var result = Array(k).fill(0);
console.log("Given K : " + k);
this.subSequences(result, 1, 0, 0, k);
}
}

function main()
{
// Test A
var k = 6;
// Test B
k = 4;
}
main();

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
#  Python 3 program for
#  Print all non-increasing sequence of sum equal to a given number k
class Combination :
def subSequences(self, result, start, count, sum, k) :
if (sum == k) :
i = count - 1
#  Display of resultant decreasing subsequence
while (i >= 0) :
#  Display element value
print(" ", result[i], end = "")
i -= 1

print(end = "\n")
elif (sum > k or count < 0) :
return
else :
i = start
while (i <= k) :
#  Collect elements
result[count] = i
#  Find subsequence by using recursively
self.subSequences(result, i, count + 1, sum + i, k)
i += 1

#  Handles the request to find resultant subsequences
def findSequence(self, k) :
if (k <= 0) :
return

#  Auxiliary list which is collect result
result = [0] * (k)
print("Given K : ", k)
self.subSequences(result, 1, 0, 0, k)

def main() :
#  Test A
k = 6
#  Test B
k = 4

if __name__ == "__main__": main()

#### Output

Given K :  6
1  1  1  1  1  1
2  1  1  1  1
3  1  1  1
2  2  1  1
4  1  1
3  2  1
5  1
2  2  2
4  2
3  3
6
Given K :  4
1  1  1  1
2  1  1
3  1
2  2
4
#  Ruby program for
#  Print all non-increasing sequence of sum equal to a given number k
class Combination
def subSequences(result, start, count, sum, k)
if (sum == k)
i = count - 1
#  Display of resultant decreasing subsequence
while (i >= 0)
#  Display element value
print(" ", result[i])
i -= 1
end

print("\n")
elsif (sum > k || count < 0)
return
else

i = start
while (i <= k)
#  Collect elements
result[count] = i
#  Find subsequence by using recursively
self.subSequences(result, i, count + 1, sum + i, k)
i += 1
end

end

end

#  Handles the request to find resultant subsequences
def findSequence(k)
if (k <= 0)
return
end

#  Auxiliary array which is collect result
result = Array.new(k) {0}
print("Given K : ", k, "\n")
self.subSequences(result, 1, 0, 0, k)
end

end

def main()
#  Test A
k = 6
#  Test B
k = 4
end

main()

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
// Scala program for
// Print all non-increasing sequence of sum equal to a given number k
class Combination()
{
def subSequences(result: Array[Int],
start: Int, count: Int,
sum: Int, k: Int): Unit = {
if (sum == k)
{
var i: Int = count - 1;
// Display of resultant decreasing subsequence
while (i >= 0)
{
// Display element value
print(" " + result(i));
i -= 1;
}
print("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
var i: Int = start;
while (i <= k)
{
// Collect elements
result(count) = i;
// Find subsequence by using recursively
subSequences(result, i, count + 1, sum + i, k);
i += 1;
}
}
}
// Handles the request to find resultant subsequences
def findSequence(k: Int): Unit = {
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
var result: Array[Int] = Array.fill[Int](k)(0);
println("Given K : " + k);
subSequences(result, 1, 0, 0, k);
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: Combination = new Combination();
// Test A
var k: Int = 6;
// Test B
k = 4;
}
}

#### Output

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4
// Swift 4 program for
// Print all non-increasing sequence of sum equal to a given number k
class Combination
{
func subSequences(_ result: inout[Int],
_ start: Int,
_ count: Int,
_ sum: Int,
_ k: Int)
{
if (sum == k)
{
var i: Int = count - 1;
// Display of resultant decreasing subsequence
while (i >= 0)
{
// Display element value
print(" ", result[i], terminator: "");
i -= 1;
}
print(terminator: "\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
var i: Int = start;
while (i <= k)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
self.subSequences(&result, i, count + 1, sum + i, k);
i += 1;
}
}
}
// Handles the request to find resultant subsequences
func findSequence(_ k: Int)
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
var result: [Int] = Array(repeating: 0, count: k);
print("Given K : ", k);
self.subSequences(&result, 1, 0, 0, k);
}
}
func main()
{
// Test A
var k: Int = 6;
// Test B
k = 4;
}
main();

#### Output

Given K :  6
1  1  1  1  1  1
2  1  1  1  1
3  1  1  1
2  2  1  1
4  1  1
3  2  1
5  1
2  2  2
4  2
3  3
6
Given K :  4
1  1  1  1
2  1  1
3  1
2  2
4
// Kotlin program for
// Print all non-increasing sequence of sum equal to a given number k
class Combination
{
fun subSequences(result: Array < Int > ,
start: Int, count: Int,
sum: Int, k: Int): Unit
{
if (sum == k)
{
var i: Int = count - 1;
// Display of resultant decreasing subsequence
while (i >= 0)
{
// Display element value
print(" " + result[i]);
i -= 1;
}
print("\n");
}
else if (sum > k || count < 0)
{
return;
}
else
{
var i: Int = start;
while (i <= k)
{
// Collect elements
result[count] = i;
// Find subsequence by using recursively
this.subSequences(result, i, count + 1, sum + i, k);
i += 1;
}
}
}
// Handles the request to find resultant subsequences
fun findSequence(k: Int): Unit
{
if (k <= 0)
{
return;
}
// Auxiliary array which is collect result
var result: Array < Int > = Array(k)
{
0
};
println("Given K : " + k);
this.subSequences(result, 1, 0, 0, k);
}
}
fun main(args: Array < String > ): Unit
{
// Test A
var k: Int = 6;
// Test B
k = 4;
}

Given K : 6
1 1 1 1 1 1
2 1 1 1 1
3 1 1 1
2 2 1 1
4 1 1
3 2 1
5 1
2 2 2
4 2
3 3
6
Given K : 4
1 1 1 1
2 1 1
3 1
2 2
4

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.