Imprimir todos os números múltiplos de 3 entre 1 e 100

Olá pessoal, tudo bem?

Estou enviando minha humilde colaboração, aos que assim como eu, estão iniciando nesse fantástico mundo da programação em java.

É apenas um exercício da apostila Caelum fj11, que pede para criar um programa que imprima todos os números múltiplos de 3 entre 1 e 100.

[code]//Este exercício faz parte da lista de exercícios da apostila Caelum FJ11
//O objetivo é imprimir todos os múltiplos de três entre 1 e 100.

public class MultiploDeTres {

public static void main(String[]args){
	
	for(int i=1 ; i<=100 ; i++){
		if(i % 3 ==0){
			System.out.println(i);
		}
	}
}

}
[/code]
Espero que seja útil.

Abraços…

2 curtidas

Eu tenho uma outra solução. :O)

import java.util.ArrayList;
import java.util.List;

public class TestMe {
    public static void main(String[] args) {

        List<Integer> numbers = new ArrayList<Integer>();
        int result = 0;
        int i = 1;
        while (true) {
            result = i++ * 3;
            if (result > 100) {
                break;
            }
            numbers.add(result);
        }

        System.out.println(numbers);
    }
}

ou

import java.util.ArrayList;
import java.util.List;

public class TestMe {
    public static void main(String[] args) {

        List<Integer> numbers = new ArrayList<Integer>();
        int result = 0;
        int i = 1;
        do {
            result = i++ * 3;
            numbers.add(result);
           // a gente tira um "if" da equaçao
        } while (result < 100);
        numbers.remove(numbers.size() -1);

        System.out.println(numbers);
    }
}

[]s,
Thiago

1 curtida

E aí Tiago, beleza?

Então cara, eu descrevi um código bastante simples, para os iniciantes como eu, que ainda não conhecem as bibliotecas do java.
Acho que quanto menos linhas de códigos utilizarmos, mais fácil é o entendimento para quem está iniciando, não acha?
Continue nos ajudando, valeu?

Abraços.

1 curtida

[quote=Douglas Lourencini]E aí Tiago, beleza?

Então cara, eu descrevi um código bastante simples, para os iniciantes como eu, que ainda não conhecem as bibliotecas do java.
Acho que quanto menos linhas de códigos utilizarmos, mais fácil é o entendimento para quem está iniciando, não acha?
Continue nos ajudando, valeu?

Abraços.
[/quote]

Uma dica, comentários para mais de uma linha use:

/*
Comentário...
que ocupa mais de uma linha
*/
public class Test{
}
1 curtida

Simplesmente

 public static void main(String[]args){  
          
        for(int i=3 ; i<=100 ; i = i + 3){  
                System.out.println(i);  
        }  
    }  
1 curtida

Boa… CAda vez menor o Codigo! Daqui a pouco conseguem fazer isso em uma linha e sem Estrutura de repetição! kkkkkkkkkkkk

Parabéns :slight_smile:

int i=3 ; i<=100 ; i = i + 3

Essa úiltima foi linda. :O)

Agora com recursão…

public class TestMe {

    private static void printMultiplos3(int number) {
        if (number < 100) {
            System.out.println(number);
            printMultiplos3(number + 3);
        }
    }

    public static void main(String[] args) {
        printMultiplos3(3);
    }
}
1 curtida

Vou deixar minha contribuição aqui, embora o tópico já esteja saturado de códigos diferentes que realizam a mesma função xD

//exemplo 01
public class Printer{

	public static void main(String[] args){
	
		for (int i=3; i < 100;){
			System.out.println(i);
			i = i + 3;
		}
	}
}


//Exemplo 02

public class Printer2{

	public static void main(String[] args){
	
		for (int i=3; i < 100; i+= 3){
			System.out.println(i);
		}
	}
}

//Exemplo 03

public class Printer3{

	public static void main(String[] args){
	
		for (int i=3; i < 100; i = i + 3){
			System.out.println(i);
		}
	}
}

Enfim, três formas diferentes de se realizar o exercício. Embora o que mudou na verdade foram algumas sintaxes. Boa sorte futuros programadores de Java :smiley:

1 curtida

Depois de muito tempo tentando, e para quem acha que o código não pode ser resolvido em apenas uma única linda: está aí minha solução:

 public static void main(String[]args){  for(int i=3 ; i<=100 ; i = i + 3){ System.out.println(i); } }         

[quote=augustovieira]Depois de muito tempo tentando, e para quem acha que o código não pode ser resolvido em apenas uma única linda: está aí minha solução:

public static void main(String[]args){ for(int i=3 ; i<=100 ; i = i + 3){ System.out.println(i); } } [/quote]
Eu acho que quando falam de um código de uma linha só, não é isso que querem dizer :slight_smile:

[quote=Rodrigo Sasaki][quote=augustovieira]Depois de muito tempo tentando, e para quem acha que o código não pode ser resolvido em apenas uma única linda: está aí minha solução:

public static void main(String[]args){ for(int i=3 ; i<=100 ; i = i + 3){ System.out.println(i); } } [/quote]
Eu acho que quando falam de um código de uma linha só, não é isso que querem dizer :)[/quote]

Hahahahaha foi uma brincadeira cara. Não existe por enquanto como resolver a questão em si em uma linha só.

Minha solução não é em Java, é em Scala, resolvi postar para dispertar a curiosidade/ interesse:

1 to 100 filter(_ % 3 == 0) foreach printlnIsso imprime todos os múltiplos de 3, com uma linha só! :smiley:

[quote=von.juliano]Minha solução não é em Java, é em Scala, resolvi postar para dispertar a curiosidade/ interesse:

1 to 100 filter(_ % 3 == 0) foreach println

Ah sim, a solução em Scala eu concordo que é em uma linha só :slight_smile:

Scala realmente é muito legal, e esse exemplo aí é só o começo :slight_smile:

[quote=samuk]Boa… CAda vez menor o Codigo! Daqui a pouco conseguem fazer isso em uma linha e sem Estrutura de repetição! kkkkkkkkkkkk

Parabéns :slight_smile: [/quote]

Sem estrutrua de repetição

Predicate<Integer> filtro = new Predicate<Integer>() {
        
 public boolean apply(Integer n){
        return n % 3 == 0;
 }

}

Block<Integer> printer= new Block<Integer>() {
        
 public voidapply(Integer n){
      System.out.println(n);
 }

}

Range.from(3).upTo(300).filter ( filtro ).each( printer);

:smiley: :smiley: :smiley:

No java 8 poderá usar lambdas e fica assim:

Range.from(3).upTo(300).filter ( n -> n % 3 == 0).each( n -> {System.out.println(n)});

Poderia não usar o filter assim

Range.from(3).by(3).upTo(300).each( n -> {System.out.println(n)});

Sem estrutruas de decisão nem repetição :slight_smile:
… e no java 8, uma linha só

As classes uadas aqui são do projeto MiddleHeaven, mas é possivel usar classes de outros projetos. Suponho que o Guava tem algo assim ,e o Apache Collections tb deve ter.

Bom dia amigos, meu primeiro post aki no fórum, eu estou iniciando neste mundo agora, apesar de já trabalhar na área da informática a muito tempo. Fiz o meu código da seguinte maneira, gostaria compilou e imprimiu tudo certo, mas gostaria de saber se usando em algum programa vai ocorrer algum problema devido eu ter feito assim.

    [code]for (int i =0; i <=100; i++){
System.out.println ("multiplos de 3:  " + i); 
 i = i + 3; 
 i--;
}[/code]

vcs postaram diversas maneiras de resolver um problema, a pergunta é: Qual deles é o mais rápido?

Tive alguns problemas. Eu consertei isso.

Boa noite, sou super novato.
Caí em uma turma começando em Análise de sistemas to dando html " sei quase nada " e hoje começou JavaScript professor passou exercicio pra entregar amanha nao sei fazer podem me ajudar? Segue abaixo. Percorra todos os números de 1 até 100. Para os números múltiplos de 4, exiba a palavra “PI”, e para os outros, exiba o próprio número.

/*Imprima todos os múltiplos de 3, entre 1 e 100*/

Ao meu entender a melhor forma de seria esta, bem simples para um iniciante entender, ele testa todos os números entre 1 e 100.

package JavaBase;

public class exerciseFive {
public static void main(String[] args){

    for(int i = 1; i < 100; i++){  //enquanto for menor de 100 ele entra no laço
        if (i % 3 == 0) { // verifica se é múltiplo de 3 
            System.out.println(i); // printa todos o numero
        }
    }

}

}