int sum(int number, int min, int counter)
{
int temp=0, n;
n=number+temp;
if ((number>=(n/2)) & (number!=min))
{
number --;
temp ++;
while (number>=(n/2))
{
cout << number << "+"<< temp << "\n";
number --;
temp ++;
counter ++;
}
}
else if (number==1)
{
return counter;
}
sum(n-1, 1,counter);
}
int main()
{
int number,counter=1;
cout << "Please enter the number: ";
cin >> number ;
cout << "\n";
sum(number, 1, counter);
cout << counter;
return 0;
}
Est-ce que ce dont j'ai besoin mais se bloque et a quelques problèmes avec elle. Je cherche juste quelques conseils sur comment l'améliorer.Problème avec le code C++ pour la théorie des nombres
Je voulais également m'assurer que je pratique correctement la récursivité. Merci!
AJOUTER: Le but du programme est de totaliser le maximum possible de façon à pouvoir additionner un nombre.
Ensuite, le nombre de séquences qui totalisent 6 est 11 (y compris 6 lui-même).
6
5+1
4+1+1
3+1+1+1
2+1+1+1+1
1+1+1+1+1+1
2+2+1+1
3+2+1
4+2
2+2+2
3+3
J'essaie aussi de ne pas avoir des séquences qui se répètent, par exemple 2 + 2 + 1 + 1 et 1 + 1 + 2 + 2.
À quoi sert cette fonction? S'il vous plaît fournir plus de détails. –
Vous avez sûrement voulu un logique et ici: 'if ((nombre> = (n/2)) & (nombre! = Min))' – ruslik
@ Hoàng Long: ajouté plus d'informations vérifier. – Zud