Jump to content
Fórum Script Brasil
  • 0

Dúvida - Saída


Luizx
 Share

Question

Pessoal,

 

Gostaria de uma orientação em relação a esse algoritmo:

Faça um programa que leia dois números inteiros, representando os valores inicio e fim de um intervalo e imprima os múltiplos de 5 entre eles.

Dois números inteiros, n e m, separados por um espaço.

Todos os múltiplos de 5, maiores ou iguais a n e menores ou iguais a m, separados pelo caractere '|'. Note que depois do último múltiplo, não existe o caractere '|'.

 

A entrada deve ser assim: 7 30 e saída assim:  10|15|20|25|30

 

Já fiz de tudo quanto é jeito pra retirar esse "|" do final mas não tenho a menor ideia. Segue o meu algoritmo (simples):

#include <iostream>

using namespace std;
main(){
    
    int i=10, n, m;
    cin >> n;
    cin >> m;
    do {
            i= i + 5;
        cout << i-5<<"|";
    }
    while (i>=n && i<=m);
        
        
        
        
        }

 

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

 #include <iostream>

using namespace std;
main(){
    
    int i=10, n, m;
    cin >> n;
    cin >> m;
    do {
            i= i + 5;
        cout << i-5;
        if(i<=m){
            cout<<"|";
        }
    }
    while (i>=n && i<=m);
        
        
        
       

Link to comment
Share on other sites

  • 0
20 horas atrás, JeanR disse:

 #include <iostream>

using namespace std;
main(){
    
    int i=10, n, m;
    cin >> n;
    cin >> m;
    do {
            i= i + 5;
        cout << i-5;
        if(i<=m){
            cout<<"|";
        }
    }
    while (i>=n && i<=m);
        
        
        
       

JeanR,

Atualizei o algoritmo pra este aqui:

#include <iostream>
#include <cstdio>
using namespace std;

main ()
{
    int m,n;
    cin >> m;
    cin >> n;
    for (int i=1;i<=n;i++)
        {
        if (i%5==0)
        
            if(i>=m&&i<n)
            {
              printf("%d|", i);}
            else if(i==n) {
              printf("%d", i);}
            
}

 

Porém estou com um pequeno problema, por exemplo, se eu entrar com 7 a 30 por exemplo, resultado será: 10|15|20|25|30  , da mesma forma que eu entrar de 1 a 5: 5, porém se eu colocar de 2 a 9, ele tá trazendo: 5| e não 5, já tentei de tudo e nada. Eu já tentei como 19 a 29 onde era pra trazer: 20|25 sem o pipe no final, porém traz 20|25|. 

Link to comment
Share on other sites

  • 0

eae luiz estou no computador da universidade não da pra entrar pela minha conta do fb
Veja se isto resolve seu problema:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    int m,n,inicio=0,fim=0;
    cin>>m;
    cin>>n;
    for(int i=m;i<=n;i++){
        if(i%5==0 && inicio==0){
            inicio=i;
        }
        if(i%5==0){
            fim=i;
        }
    }
    for(int i=inicio;i<=fim;i++){
        if(i%5==0){
        if(i==fim){
           printf("%d",i);
        }else
            printf("%d|",i);
        }
    }
}

Link to comment
Share on other sites

  • 0
26 minutos atrás, JeanRamos disse:

eae luiz estou no computador da universidade não da pra entrar pela minha conta do fb
Veja se isto resolve seu problema:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    int m,n,inicio=0,fim=0;
    cin>>m;
    cin>>n;
    for(int i=m;i<=n;i++){
        if(i%5==0 && inicio==0){
            inicio=i;
        }
        if(i%5==0){
            fim=i;
        }
    }
    for(int i=inicio;i<=fim;i++){
        if(i%5==0){
        if(i==fim){
           printf("%d",i);
        }else
            printf("%d|",i);
        }
    }
}

Vlw, Jean!!! \°/  Deu certo!!!

 

Muito obrigado cara...

Link to comment
Share on other sites

  • 0
Em 14/04/2016 at 11:18, JeanRamos disse:

de nada man

Jean, eu tô com um problema que eu nunca vi antes, o algoritmo da área de um círculo sendo que a area em m². Eu tô fazendo correto, segue:

 

#include <iostream>
#define PI 3.14159
#include <cstdio>
#include <math.h>

using namespace std;
main()
{
    int x;
    float area,z;
    cin >> x;
    area = PI*(x*x);
    z = area/10000;
    printf("Area = %.4f",z);
}
 

Porém tá dando o erro seguinte:  Sabia que ponto flutuante não significa o ponto estar no céu? 

Tem segundo que ele pergunta se o número é perfeito e apresentar esse número, fiz o algoritmo:

#include <iostream>
#include <stdio.h>
using namespace std;
main()
{
 int n, k, soma=0, i; 
    cin >> n; 
    for (k=1; k<n; k++) { 
    soma = 0; 
        for (i=1; i<k; i++) 
            if (k % i == 0) 
            soma += i; 
                if (k == soma) 
            printf("%d", k); 
                                }
}

Mas ele tá apresentando o seguinte:  Esse problema é interessante. Para cada número menor que o número dado, você deve verificar se ele é perfeito e, se for, imprimí-lo. A impressão deve ser do menor para o maior. Ou seja, comece testando os números menores.

Link to comment
Share on other sites

  • 0

A principio, não entendi bem o que voce quis dizer o erro seguinte:  Sabia que ponto flutuante não significa o ponto estar no céu?  (isso parece mais uma informação do que um erro kk) o programa esta rodando e funcionando normalmente aqui
o segundo
for (k=1; k<n; k++) { //note que k recebe1
    soma = 0; 
        for (i=1; i<k; i++) 
//i=1 e k=1 então ele encerra o laço sem executar nada e volta no laço do k e incrementa ele agora k vale 2 ai ele verifica I<2 não então ele encerra o laço e por ai vai.
para exibir somente se e perfeito esse algoritmo resolve:

#include<iostream>
using namespace std;
int main(){
    int num,i;
    int soma=0;
    cin>>num;
    for(i=1;i<num;i++){
        if(num%i==0){
            soma+=i;    
        }
    }
    if(num==soma){
        cout<<"e perfeito: "<<num;
    }else
        cout<<"não e perfeito: "<<num;
}
vou criar uma logica para verificar se os numeros menores que ele são perfeitos se csg eu posto aqui, se voce já tiver resolvido o problema avise também bel
 

Link to comment
Share on other sites

  • 0
29 minutos atrás, JeanR disse:

A principio, não entendi bem o que voce quis dizer o erro seguinte:  Sabia que ponto flutuante não significa o ponto estar no céu?  (isso parece mais uma informação do que um erro kk) o programa esta rodando e funcionando normalmente aqui
o segundo
for (k=1; k<n; k++) { //note que k recebe1
    soma = 0; 
        for (i=1; i<k; i++) 
//i=1 e k=1 então ele encerra o laço sem executar nada e volta no laço do k e incrementa ele agora k vale 2 ai ele verifica I<2 não então ele encerra o laço e por ai vai.
para exibir somente se e perfeito esse algoritmo resolve:

#include<iostream>
using namespace std;
int main(){
    int num,i;
    int soma=0;
    cin>>num;
    for(i=1;i<num;i++){
        if(num%i==0){
            soma+=i;    
        }
    }
    if(num==soma){
        cout<<"e perfeito: "<<num;
    }else
        cout<<"não e perfeito: "<<num;
}
vou criar uma logica para verificar se os numeros menores que ele são perfeitos se csg eu posto aqui, se voce já tiver resolvido o problema avise também bel
 

CONSEGUI
#include<iostream>
using namespace std;
int main(){
    int num,i,k;
    int soma=0,result=0;
    cin>>num;
    for(i=1;i<num;i++){
        if(i!=1){
            for(k=1;k<i;k++){
                if(i%k==0){
                    result+=k;
                }
                if(result==i && k==i-1){
                    cout<<"e perfeito: "<<i<<"\n";
                }
            }
        }
        result=0;
        if(num%i==0){
            soma+=i;
        }
            
    }
        
    if(num==soma){
        cout<<"e perfeito: "<<num;
    }else
        cout<<"não e perfeito: "<<num;
}

ESPERO TER AJUDADO :D

Link to comment
Share on other sites

  • 0
21 horas atrás, JeanR disse:

CONSEGUI
#include<iostream>
using namespace std;
int main(){
    int num,i,k;
    int soma=0,result=0;
    cin>>num;
    for(i=1;i<num;i++){
        if(i!=1){
            for(k=1;k<i;k++){
                if(i%k==0){
                    result+=k;
                }
                if(result==i && k==i-1){
                    cout<<"e perfeito: "<<i<<"\n";
                }
            }
        }
        result=0;
        if(num%i==0){
            soma+=i;
        }
            
    }
        
    if(num==soma){
        cout<<"e perfeito: "<<num;
    }else
        cout<<"não e perfeito: "<<num;
}

ESPERO TER AJUDADO :D

Rapaz, eu não sei o que fazer mais, já tô ficando doido com esse algoritmo. Ele tá informando a mesma coisa. Bom, mas vlw pela a ajuda, tô aqui tentando em que estou errando. 

 

 

 

Link to comment
Share on other sites

  • 0

Use uma variável auxiliar num comando condicional fera!

 Veja como é simples:

#include <iostream>

using namespace std;

int main ()

{

int i, j, n, m;

cout << "Digite o valor de n: "<< endl;
cin >> n;

cout << "Digite o valor de m: " << endl;
cin >> m;

cout << "\n";

j=0;

for (i=n; i<=m; i++)

    {

        if (i%5==0)

            {

                if (j==0)

                cout << i;

                else

                cout << "|" << i;

                j++;

            }

    }

    cout << "\n";

return 0;
}

Abraços e bons estudos!

Esse já foi resolvido, lol. Vou ajudar no outro.

Link to comment
Share on other sites

  • 0

Area = PI * raio².

Então: 

 

#include <iostream>
#define PI 3.14

using namespace std;

int main()

{
    int raio;

    float area=0;

    cout << "Digite o valor do raio: " << endl;
    cin >> raio;

    area = PI*(raio*raio);

    cout << "Area = " << area << "m²"<< endl;

    return 0;
}

 

Calcular se um número é perfeito:

#include <iostream>

using namespace std;

int main()

{

int SomaDivisores=0, NumeroTeste, i;

cout << "Digite um numero para testar se é perfeito: ";

cin >> NumeroTeste;

    for (i=1; i<NumeroTeste; i++)

    {



        if (NumeroTeste%i==0)

            {

            SomaDivisores+=i;

            }

    }

    if (SomaDivisores==NumeroTeste)

        {

        cout << "A soma dos divisores do numero " << NumeroTeste << " com excecao dele mesmo é " << SomaDivisores << endl;

        cout << "Logo, " << NumeroTeste << " é um numero perfeito" << endl;

        }

    else

        {

        cout << "A soma dos divisores do numero " << NumeroTeste << " com excecao dele mesmo é " << SomaDivisores << endl;

        cout << "Logo, " << NumeroTeste << " não é um numero perfeito" << endl;


        }

return 0;

}

Abraços e bons estudos.

Link to comment
Share on other sites

  • 0

Vlw, 

13 horas atrás, Aristóteles disse:

Area = PI * raio².

Então: 

 

#include <iostream>
#define PI 3.14

using namespace std;

int main()

{
    int raio;

    float area=0;

    cout << "Digite o valor do raio: " << endl;
    cin >> raio;

    area = PI*(raio*raio);

    cout << "Area = " << area << "m²"<< endl;

    return 0;
}

 

Calcular se um número é perfeito:

#include <iostream>

using namespace std;

int main()

{

int SomaDivisores=0, NumeroTeste, i;

cout << "Digite um numero para testar se é perfeito: ";

cin >> NumeroTeste;

    for (i=1; i<NumeroTeste; i++)

    {



        if (NumeroTeste%i==0)

            {

            SomaDivisores+=i;

            }

    }

    if (SomaDivisores==NumeroTeste)

        {

        cout << "A soma dos divisores do numero " << NumeroTeste << " com excecao dele mesmo é " << SomaDivisores << endl;

        cout << "Logo, " << NumeroTeste << " é um numero perfeito" << endl;

        }

    else

        {

        cout << "A soma dos divisores do numero " << NumeroTeste << " com excecao dele mesmo é " << SomaDivisores << endl;

        cout << "Logo, " << NumeroTeste << " não é um numero perfeito" << endl;


        }

return 0;

}

Abraços e bons estudos.

Vlw, Aristóteles...essa do círculo já resolvi da seguinte forma:

#include <iostream>
#include <iomanip>
using namespace std;

main() {
double A, p = 3.14159, R;
cin >> R;
A = p * R * R;
cout << fixed << setprecision(4);
cout << "Area = " << A/10000;
}

 

Caso queira saber de onde estou tirando esses algoritmos o site é o: www.thehuxley.com   , uma plataforma utilizada por universidades federais e institutos federais, lá tem desde simples algoritmos até projetos a serem resolvidos. Os mesmos servem também pra treinamento pra olimpíadas de programação. As linguagems são: C, C++, Octave, Java, etc. 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...