Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

digital

Combinações de numeros inteiros

Mensagens Recomendadas

digital

Bom dia

Estou a tentar resolver um proble em Visual Basic.Net, está quase pronto, mas nao consigo resolver esta questão.

Quem me poderia dar uma ajuda, não quero o trabalho feito mas pelo menos uma ajuda de como resolver esta questão.

Quero que o programa me devolva todas as combinações de soma de 3 numeros (nao repetidos), possiveis para determinado numero introduzido pelo utilizador, por exemplo: o utilizador introduz o numero 6, o VB deverá devolver (3+2+1) é a unica combinação possivel, mas se o utilizador  introduzir o 9 deverá devolver (4+3+2), (1+2+6),(5+3+1) a ordem dos numeros nao interessa e não há limite no numero que o utilizador pode introduzir.

desde já agradeço a ajuda possivel. Segundo o professor não existe qualquer função ou formula matematica para o resolver. A unica formula matematica será a soma inteiro=num1+num2+num3

o que me deixou ainda mais confusa.

Desde ja agradeço toda a ajuda possivel

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mogers

Aqui de facto não há muito a fazer senão um programa que experimente as combinações todas.

Repara que se tiveres num1 e num2 (para facilitar a vida é melhor colocar uma ordem à partida como "num1 < num2"), num3 = num - (num1+num2). Experimenta todas as hipoteses plausiveis para num1 e num2 e verifica se o num3 é maior que o num2. Se for, tens uma das soluções.


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
digital

Obrigada pela ajuda mogers, vou fazer isso black-Day.

Mais alguma sugestão?

Criei um contador para num1, num2, num3 para que vá incrementando até que num1 num2 + num3 seja = inteiro

à partida deverá ser por aqui, o problema é que conhecemos o inteiro (já que o utilizador o introduz), mas como ter os outros numeros a partir deste?????

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
black_Day

🤔 um quebra-cabeças...

Vou procurar a soluçao, depois escrevo...

🤔 contador.... 🤔 num1... 🤔


"O melhor Hacker e aquele que você não conhece..."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mogers

Já colocaste a mesma pergunta no tópico de VB, aqui e em Matemática. Isso é extremamente errado! Antes de perguntar devias identificar qual é a secção certa e fazer apenas um post.

Pelo que disse anteriormente, dois contadores chegam. Não precisas de 3.


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
digital

;) desculpa mas sou nova neste forum e tambem em programação e ainda não me é facil identificar o real problema, por isso fui seguindo as sugestões me foram sendo dadas e coloquei o mesmo post em varias secções.

Não voltará a acontecer, mais uma vez as minhas desculpas a todos os utilizadores do forum  :dontgetit: nao foi por mal.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Ferreira

Uma idéria é teres um ciclo entre 1 e n e para cada iteração gerares as somas de dois números.

Exemplo com 9:

1:

2:

3: 1+2+6

4: 1+3+5

5: 2+3+4

6:

7:

8:

9:

Acho que dá para perceber a ideia. Tens de verificar se a sequência já existe (ou podes descartá-las no fim) e verificar se há números repetidos.

Além disto, acho que ainda dá para fazer umas optimizações.

EDIT: Podes começar a contar a partir de 3, já que com 1 não podes ter uma soma de dois números e com 2 a única hipótese é 1+1.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mogers

Eu sei que és nova no fórum, era só para avisar desde já :thumbsup:


"What we do for ourselves dies with us. What we do for others and the world, remains and is immortal.", Albert Pine

Blog pessoal : contém alguns puzzles, algoritmos e problemas para se resolver com programação.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Warrior

Eu acho que estão todos a complicar demasiado, sigam a ideia que o mogers deu e resolvem o problema em 3 linhas.

Para cada par de dois números (uma vez que não queres somas repetidas, basta garantir que o primeiro é menor ou igual ao segundo para não as criares).

De seguida, para cada um destes pares de números, para a soma dar K o terceiro terá que ser obrigatoriamente num3 = K - (num1+num2)

Se num3 for maior ou igual a num2, encontraste uma soma nova. Caso contrário, é uma soma repetida.

Simples, eficaz, e pequenino.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
eneiasjunior

acho que da pra fazer assim

entrada = x  a=1  b=2

z=x-3

(z,a,B)

(z-1,a,b+1)

.....

...

.... (Z-k,a,b+k) até que z-k seja igual b+K entendeu????

daí (z-2,a+2,B)

...

..

(z-k,a+k,B) até  até que z-k seja igual a+K entendeu????

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.