Jump to content

Recommended Posts

Posted

Fazer um programa em C para calcular a soma dos N primeiros múltiplos de um inteiro K, onde N e K são lidos e são números inteiros e positivos...

preciso de fazer isto e tenho tido dificuldade em somar os numeros que me dao...

#include <stdio.h>
#include <stdlib.h>

main(){
       int n,k,soma;
        printf("Introduza um numero inteiro positivo:\n");
        scanf(" %d", &k);
        printf("Introduza a quantidade de multiplos do numero inteiro introduzido que deseja somar:\n");
        scanf(" %d", &n);
        
        if(k<=0 || n<=0){
                printf("Introduza numeros inteiros positivos\n");
                }
                else{
                     for(k; n>0; n--){
                            printf(" %d\n", ((n-1)*k) + k); 
                           
                            }
                            }
       system("pause");
}

coloquei este codigo que me da os numeros que eu quero mas nao me soma...alguem sabe como posso por os numeros a somar? por exemplo se n=5 e k=5, o programa imprime-me os numeros 25, 20, 15, 10 e 5 mas eu gostava que me imprimisse 75(a soma deles)

se alguem me poder ajudar agradecia

abraço 😉

Posted

eu ainda sou novo no mundo da programaçao (1 semana) e tentei fazer isso...fazer um scanf a seguir ao printf do for...e depois da chaveta do for um printf a imprimir a soma...mas so apareceu o primeiro numero, o 25...

nao estou a ver como e que somo antes de aparecerem todos os numeros pois o for esta sempre a repetir :S

Posted
if(k<=0 || n<=0)

tu colocaste assim: se k for menor ou igual a zero OU n menor ou igual a zero.

Logo estas apenas a ler se o valor for negativo, que como vi não é o que pretendes...

Espero ter ajudado.

cumps

Posted

então mas podes colocar IF, para verificar se os valores introduzidos são positivos, se sim, soma

caso contrario envia a mensagem a pedir para introduzir valores positivos.

Entendes?

Posted
#include<stdio.h>

main()
{
      int x,soma;
      soma=0;
       for(x=0;x<=100;x++)
           soma = soma + x;     
       
      printf("soma dos 1ºs 100 numeros inteiros e :%d",soma);
      getchar();
      getchar();
}

Tens aqui um exemplo, espero que ajude....

Posted

eu hoje estou de boa disposição :

#include <stdio.h>
#include <stdlib.h>

main(){
  /* declaracao de variavel da aplicacao */
  int n = 0,k = 0,soma = 0;

  /* introducao dos valores por parte do utilizador */
  printf("Introduza um numero inteiro positivo:\n");
  scanf("%d", &k);
  printf("Introduza a quantidade de multiplos do numero inteiro introduzido que deseja somar:\n");
  scanf("%d", &n);

  /* verificacao dos valores introduzidos */
  if(k<=0 || n<=0){
    printf("Introduza numeros inteiros positivos\n");
  } else {
    /*
     * ciclo da soma dos multiplos
     * n*k + (n-1)*k + (n-2)*k + ..... 2*k + 1*k
     */
    for(; n>0; n--)
      soma += n*k;
    /* apresentacao do resultado */
    printf("O resultado da soma e : %d\n", soma);
  }
  /* usado em windows para nao fechar a janela da consola */
  system("pause");
}
IRC : sim, é algo que ainda existe >> #p@p
Posted

obrigado a todos pela ajuda e pela vossa boa disposiçao xD

o que me faltava era tambem perceber que (((n-1)+k)+k) = n+k --'

burrice minha xD.

muito obrigado a todos 😉

abraço

Posted

#include<stdio.h>

main()
{
	  int x,soma;
	  soma=0;
   	   for(x=0;x<=100;x++)
           soma = soma + x;     
	   
	   printf("soma dos 1ºs 100 numeros inteiros e :%d",soma);
   getchar();
	  getchar();
}

Tens aqui um exemplo, espero que ajude....

o código que fizeste post não é a soma dos múltiplos mas sim a soma do número n-vezes

IRC : sim, é algo que ainda existe >> #p@p
Posted

Eu não disse que era múltiplos...

Apenas coloquei um código de forma a que ele conseguisse perceber a lógica do for,e como somar valores que saem dele para que o pudesse utilizar.

Posted

Fazer um programa em C para calcular a soma dos N primeiros múltiplos de um inteiro K, onde N e K são lidos e são números inteiros e positivos...

preciso de fazer isto e tenho tido dificuldade em somar os numeros que me dao...

k + 2*k + ... + N*k = k * (1 + 2 + ... + N) = k * N*(N+1)/2

A última igualdade é a soma de uma progressão aritmética.

Não respondo a dúvidas por mensagem.

Posted

k + 2*k + ... + N*k = k * (1 + 2 + ... + N) = k * N*(N+1)/2

A última igualdade é a soma de uma progressão aritmética.

pois ... mas o problema parece um exercício para perceber ciclos

está correcto matematicamente, mas errado no ponto de vista de aplicação de conhecimentos

IRC : sim, é algo que ainda existe >> #p@p
Posted

pois ... mas o problema parece um exercício para perceber ciclos

está correcto matematicamente, mas errado no ponto de vista de aplicação de conhecimentos

Estou perfeitamente de acordo no que toca ao exercício. Acontece que provavelmente ele vai ter mais 500 exercícios para perceber ciclos, mas vai ter poucos para poder perceber que (n-1)*k + k = n*k ou que algum raciocínio permite passar um algoritmo de O(N) para O(1).

A importância da matemática na educação de um programador é muito subvalorizada.

Não respondo a dúvidas por mensagem.

Posted

Estou perfeitamente de acordo no que toca ao exercício. Acontece que provavelmente ele vai ter mais 500 exercícios para perceber ciclos, mas vai ter poucos para poder perceber que (n-1)*k + k = n*k ou que algum raciocínio permite passar um algoritmo de O(N) para O(1).

A importância da matemática na educação de um programador é muito subvalorizada.

😉

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.