Bom… to começando agora em java… e to precisando de uma ajudinha… tenho um exercicio pra fazer… só q não to conseguindo implementar ele do jeito certo… segue o exercicio proposto e a minha resolução… vlwww!
1.Escreva um programa que, para uma dada seqüência de valores inteiros fornecidos em uma linha de entrada pelo usuário de comprimento maior ou igual a 3, calcule o número de triplas (subsqüências de comprimento 3) com valores iguais existentes na seqüência dada.
Exemplo para a seqüência 4 2 15 15 15 3 7 7 7 7 2 o programa deve produzir o resultado 3, pois a seqüência data contém um tripla com valores 15 e duas (sobrepostas) com valores 7.
RESOLUÇÃO!!!
import java.util.Arrays;
import java.lang.*;
import javax.swing.*;
public class OO12 {
public static void main(String[] args) {
int pri;
int seg;
int ter;
int i=0;
int ctrpl=0;
int[] v;
v=new int[10];
do{
String s=JOptionPane.showInputDialog("Digite um nº:");
v[i]=Integer.parseInt(s);
++i;
} while(v[i]!=0 );
if (v.length<=3)
System.out.println("animal");
else while(i<v.length-2){
pri=v[i];
seg=v[i+1];
ter=v[i+2];
if ((pri==seg) && (seg==ter)){
ctrpl=ctrpl+1;
i=i+1;
}
}
System.out.println("A qtd de triplas é: "+ctrpl);
}
}
Poxa cara… vlw mesmo… essa parte funcionou… mas agora nada funciona no programa… =(… tem como vc dar uma lida e tentar ver os erros? Agradeçooooo… vlw!!
Que isso vvelinho so quebrar cabeça … vc vai ter que usar uma StringBuffer para armazenar todos em String a linha que o usuario digitou , apos vai ter que partir os elementos desta linha com a StringTokenizer com separador de espaço apos vai ter que incrementar um contador de repetição para verificar quantos elementos repetira, vai ter que usar excessão quando fazer Integer do elemento … e vai dar um tiquinho de trabalho … !!!
StringTokenizer??? Tá loco??? Não é complicar demais para um trabalho simples?
Na pior das hipóteses, se você já tem a linha inteira, basta fazer linha.split(" "); para obter um vetor de Strings com os números separados.
Basta usar uma variável para o último número lido, um contador para os números repetidos e um contador para o número de triplas.
Então:
contadorDeRepetidos = 1
Leia um número;
Enquanto o usuário não digitou 0
Se o número for igual ao anterior,
some 1 no contadorDeRepetidos.
se o contadorDeRepetidos >= 3
some 1 ao contadorDeTriplas
fim se
Senão
atribua ao anterior o numeroLido
contadorDeRepetidos = 1
fim se
leia um número
fim enquanto
mostre contadorDeTriplas
Note que você pode usar a mesma lógica para processar o seu vetor. Basta substituir numeroLido para cada elemento do vetor e trocar o while por um for que percorra seu vetor inteiro.