Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int Sum(int *tab, int n);
- void PrintTable(int *tab, int n);
- int main()
- {
- int k, p, *t, s, incIdx, i, diff, count = 0;
- printf("Podaj liczbe kul > ");
- scanf("%d", &k);
- fflush(stdin);
- printf("Podaj liczbe pojemnikow > ");
- scanf("%d", &p);
- fflush(stdin);
- t = (int*) malloc(p * sizeof(int));
- incIdx = p - 2;
- for (i = 0; i < p - 1; i++)
- t[i] = i;
- while(1)
- {
- diff = k - sum(t, p - 1);
- if (diff > t[p - 2])
- {
- incIdx = p - 2;
- t[p - 1] = diff;
- PrintTable(t, p);
- count++;
- }
- else
- {
- incIdx--;
- if (incIdx == -1)
- break;
- }
- t[incIdx]++;
- for (i = incIdx + 1; i < p - 1; i++)
- t[i] = t[i - 1] + 1;
- }
- printf("\nIlosc kombinacji: %d\n", count);
- free(t);
- return 0;
- }
- int sum(int *tab, int n)
- {
- int sum = 0, i;
- for (i = 0; i < n; i++)
- sum += tab[i];
- return sum;
- }
- void PrintTable(int *tab, int n)
- {
- int i;
- for (i = 0; i < n; i++)
- printf("|%d|, ", tab[i]);
- putchar('\n');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement