Hi i'm new to this place.. Great to be here.. anyway, i'm having this problem with an assignment i have to complete.. it's regarding a prblem called non increasing partitions of n. i have to get the output 4 3 1 2 2 2 1 1 1 1 1 1 when given the input 4.. i already have an algorithm i tried out, but the only answer it gives in the end is 4.. i believe this is a recursive algorithm.. does anyone have any idea?
I just came up with this code.. but it doesnt work from the 3rd line onwards.. :-( Code: #include<stdio.h> void partition(int no); int main() { int n=4; partition(n); } void partition(int no) { int j=0; int i; for(i=no; i>=1; i--) { printf(" %d , %d \n", no-j, no-i); j++; } } ~ ~
I'm sorry... i'm new here.. i didn't know that code blocks are used.. .. this is my first day on here
you are increasing j to often try creating a for loop with j as well inside the I loop area. Also lthe length you have should be dynamic based on the length of N or you will never get 4 1's
yeah.. datz the problem i'm havin.. anyway, i created a program so as to get the N from the user.. anyways, it gives the following result when n = 4 now.... 4 3 1 2 2 2 1 1 1 1 1 1 It doesn't even like this for any values beyond 4.. hmmmm Anyway, it's in a presentable form now atleast for the assignment purposes.. lol..
The pattern is next line you represent any number as the sum of 2 numbers in the above line. Or simple words break the numbers as you move down the line numbers.