Bom dia me surgiu uma dúvida!
Todos sabemos calcular essa questão de quantos 9 existem de 0 a 100, totalizando 20 números 9. A pergunta é a seguinte: Será que é possível resolver isso usando java?
E pq não seria?
É possível resolver usando qualquer linguagem, de assembly a go…
Vai de ti fazer isso, né?
@Mike e @darlan_machado consegui fazer, segue o código abaixo:
int total = 0;
for (int i = 1; i < 100; i++) {
if (i > 0 && i < 10){
if(i == 9)
total += 1;
}
if (i > 10 && i < 20){
if(i == 19){
total += 1;
}
}
if (i > 20 && i < 30){
if(i == 29){
total += 1;
}
}
if (i > 30 && i < 40){
if(i == 39){
total += 1;
}
}
if (i > 40 && i < 50){
if(i == 49){
total += 1;
}
}
if (i > 50 && i < 60){
if(i == 59){
total += 1;
}
}
if (i > 60 && i < 70){
if(i == 69){
total += 1;
}
}
if (i > 70 && i < 80){
if(i == 79){
total += 1;
}
}
if (i > 80 && i < 90){
if(i == 89){
total += 1;
}
}
if(i >= 90 && i <= 100){
total = (total + 1);
}
}
System.out.println("Total de números 9 entre 0 e 100: " + (total + 1));
Boa! mas tem um jeito mais fácil de fazer Imagina se tivesse que verificar quantos 9 existem de 0 a 5 milhões?
A classe String tem vários métodos, um deles é o charAt(), que recebe como parâmetro um valor inteiro, esse valor inteiro é a posição do caracter na String
Ex:
Temos a palavra Professor, então o charAt(3) retornaria a letra f (sempre começando a contar do 0 e não do 1).
O que você teria que fazer basicamente é converter o valor da sua váriavel de iteração (que no caso é ‘i’) para String e através de um if verificar se o caracter de sua String é um 9 ou não, usando charAt
eu fiz assim:
public class ContadorNumeros {
public static void main(String[] args) {
int contador = 0;
String numero[] = {"0", "9", "19", "29", "39", "49", "59", "69", "79", "79","99"};
for (int i = 0; i < numero.length; i++) {
if(numero[i].contains("9")){
contador++;
}
}
System.out.println("total: " + contador);
}
}
Se fosse de 0 a 5 milhões você ia fazer assim também? Além do que, faltou 91, 92, 93, 94, 95, 96, 97, 98 e 99 contém dois noves
Você repetiu duas vezes o 79
kkkk, e mesmo, foi so pra exemplificar
Não compreendi… vc poderia postar o codigo para vermos como ficaria???
Eu não tenho o código mas da pra fazer utilizando o charAt, você vai verificar cada caracter para ver se é um 9 ou não.
Terá que ter mais um for que vai de 0 a String.valueOf(i).length();
Se i vale 92,então o tamanho é 2
Na primeira iteração a posição será 0,ai verifica se na posição 0, o valor é 9, se não for,a iteração vai para 1
Minha duvida é pq o metodo charAt() retorna um vetor.
Retorna um char
@Jederson_Andre e @Mike essa é uma excelente discussão!
Na verdade isso foi um desafio meu ao ver essa questão e tentar ciar um algoritmo para executar esse calculo e a primeira coisa que veio a mente foi fazer dessa forma que eu descrevi acima!
E nessa linha: System.out.println("Total de números 9 entre 0 e 100: " + (total + 1)); eu tive somar o total + 1 pq ele só reconhecia 1 numero de 99 e tem que contar os 2, por isso essa soma!
E @Mike meu contador i teria que ser String ao invés de int pra poder retornar o char?
Vou tentar fazer aqui pra ver se roda!
ele pode ser int, mas a cada iteração você pode armazar o valor de i em uma string
Tendi
Só conta 10 números 9