Rozpisywanie liczby na wszystkie mozliwe kombinacje skladnikow

0

Wlasnie skonczylem ostatnie cwiczenie z kursu, kod dziala tak jak chcialem, tylko nie jestem na 100% przekonany czy dokladnie o to chodzilo w zadaniu, dlatego chcialem to z wami skonsultowac : ) Tresc zadania i moj kod zamieszcze kolejno pod spodem:

Napisz program, który rozpisuje daną liczbę na wszystkie możliwe kombinacje jej składników.

Przykład:

2 = 1+1
2 = 2
#include<stdio.h>

int main(void){
int a;
scanf("%i", &a);
printf("dodawanie do uzyskania podanej liczby\n");
int i;
for(i=0;i<=a;++i){
  int w = a-i;
  printf("%i = %i + %i\n", a, i, w);
 }
 printf("odejmowanie do uzyskania podanej liczby\n");
 for(i=a;i>=0;--i){
   int s = a+i;
   printf("%i = %i - %i\n", a, s , i);
 }
 float x =  a;
 printf("mnozenie do uzyskania podanej liczby\n");
 for(i=1;i<=x;++i){
   float c = x/i;
   printf("%i = %f * %i\n", a, c , i);
 }
 printf("dzielenie do uzyskania podanej liczby\n");
 for(i=1;i<=a;++i){
   float v = a*i;
   printf("%i = %f / %i\n", a, v, i);
 }
 return 0;
}

Taki byl zamysl zadania czy niebardzo ?

dodanie znacznika <code class="cpp"> - @furious programming

0

Ani trochę. Chodziło tylko o dodwanie, ale o rozpisanie go na więcej niż 2 składniki. Na przykład dla 3 masz już

1+1+1
1+2
3

A dla 4 masz

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

Aha, no okej to zrobie drugi program tak jak mowisz, dzieki : ) ...Chociaz ten koncept wyglada na troche trudniejszy, moze jakas wskazowka jak zaczac to w kodzie ? Bo nie widzi mi sie zaden pomysl na razie.

2

Integer partitions

0

Ale jak zapisac te integer partitions w kodzie, jak ich uzyc.

0

A może najpierw sprawdź co to jest?

0

@_user nie ogarniam cie trochę. Albo chcesz sie czegoś nauczyć albo nie. Jak ci napiszemy jak zrobić to zadanie to nie nauczysz się niczego...

0
_user napisał(a):

Aha, no okej to zrobie drugi program tak jak mowisz, dzieki : ) ...Chociaz ten koncept wyglada na troche trudniejszy, moze jakas wskazowka jak zaczac to w kodzie ? Bo nie widzi mi sie zaden pomysl na razie.

Spróbuj użyć rekurencji.

0

Bylbym wdzieczny jak ktos moglby podac przyklad w kodzie c jak to zrobic.

1

Tutaj masz algorytm:

  1. wejdz na google
  2. wpisz cos w rodzaju "partycje liczb"
  3. chyba trzeci link: http://www.impossible-technologies.eu/down/tl.pdf

a tak btw to nie widze zadnego sensu w ograniczaniu sie do polskich materialow, zwlaszcza w kontekscie programowania

1 użytkowników online, w tym zalogowanych: 0, gości: 1