Preciso fazer um programa que mostre toda as somas possiveis para um numero. por ex:
se for 7, ficará assim:
7+0
6+1
5+2
5+1+1
4+3
4+2+1
4+1+1+1
3+2+2
3+2+1+1
3+1+1+1+1
2+2+2+1
2+2+1+1+1
2+1+1+1+1+1
1+1+1+1+1+1+1
E?
Não sei o que você entende por dúvida, mas o que você colocou aí não se enquadra em nenhuma definição do que eu entendo por.
Faça um favor a si mesmo, deixe de ser preguiçoso e entenda que:
Não fazemos lição de casa
Se tem dúvida, faça corretamente a pergunta.
faltou o
3 + 3 + 1
Bom, estude um pouco de matemática. Vou explicar uma parte do processo.
Digamos que você tem um número N. Pode-se notar que:
(N - x) + x = N.
Pude inferir pelo exemplo que você postou que a soma é relativa à parcelas positivas. Assim, temos que x pode variar de 0 até N. Você pode decompor seu x de forma semelhante no cálculo anterior.
(N - x) + (x - y) + y = N
Novamente, para pegar somente parcelas positivas você deve ter y variando entre 0 e x.
Você tem agora uma fórmula para obter todas as somas possíveis que resultam em N usando 3 parcelas.
Como será a fórmula para pegar 4 parcelas? Já se pode deduzir que será:
(N - x) + (x - y) + (y - z) + z = N
E para N parcelas? Essa eu deixo para você pensar, mas com o mínimo de raciocínio você encontra o resultado.
Já lhe dei a lógica do problema, o resto é com você.
para resolver o problema entao eu terei que ter N for’s no meu codigo?
Sim.
Sim.[/quote]
pra ter o n for, vc pode usar recursão
mas como eu faria para usar recursao aqui?
se fizer recursivamente vai funcionar pra todos os casos?
Todos os números possíveis é impossível, dado que são infinitas possibilidades.
Ex: todas as somas que resulte em 1:
0+1
(-1) +2
(-2)+ 3
(-3)+ 4
…
(-n) + (n+1)
A não ser que as somas sejam limitadas a soma de números positivos ou coisa parecida.
os numeros so podem ser positivos mesmo. Se for numeros inteiros, seria infinito mesmo.
Faça 2 whiles/for…
com X e Y por exemplo…
para cada valor de X, percorra o Y… enquanto o X eh menor igual ao numero que deve ser somado, e o mesmo para y…
se a soma deles, dentreo do for do Y der o memso valor… aumenta o valor de numeros somados…
se nao, nao… bem simples!
Abraço
ps: vi agora que pode ser mais de 2 números, não havia pensando na questão assim.