@CyberPuma:
Ne, ich glaube nicht, außerdem ist das doch gerade schwieriger.
Hier jedenfalls mein Programm, es gibt die Kombinationen zwar noch nicht richtig aus, aber das werde ich noch beheben. Zudem kann man die Maximale Schrittgröße bei mir eingeben. Das Ganze habe ich rekursiv gelöst, wobei ich glaube das man das ja nicht anders machen kann(wenn nicht, dann sagt es mir bitte).
Code:
#include<iostream>
using namespace std;
int GiveNumber(const int NumberHoles,int MaxStep);
int main(void)
{
cout<<"Geben sie die Anzahl der Stufen an\n";
int NumberHoles=0;
int MaxStep=0;
cin>>NumberHoles;
if(NumberHoles<1)return 1;
cout<<"Wie gross darf ein Schritt sein?\n";
cin>>MaxStep;
if(MaxStep<1)return 1;
int InfoSteps=GiveNumber(NumberHoles,MaxStep);
cout<<"\n\n\nEs gibt "<<InfoSteps<<" Moeglichkeiten\n";
cin>>NumberHoles;
return 0;
}
int GiveNumber(const int NumberHoles,int MaxStep)
{
int PossibleSteps=0;
int CopyHoles=NumberHoles;
for(int i=1;i<=MaxStep;i++)
{
CopyHoles=NumberHoles;
CopyHoles-=i;
cout<<i;
if(CopyHoles==0)
{
cout<<'\n';
PossibleSteps++;
return PossibleSteps;
}
PossibleSteps+=GiveNumber(CopyHoles,MaxStep);
}
return PossibleSteps;
}