Boa Tarde! Pessoal… Primeiramente gostaria de agradecer pelas digas até agora… Sou iniciante… mas vou tentar explicar a lógica usando essa tabela…
001 005 7 11 13 17 19… 043… vai até 059 e pula pra 61
061 065 67 71 … … … 103 119
121 125
181 185
ou
001 002… até 60…e retorna para 61… na coluna 1…
061 062
121 122
… continua somando mas 60… em cada coluna…
Exemplo: o numero 121 tem 3 dígitos 0- 1- 2 e está localizado na coluna 1 usando a formula…ok … o sistema me retorna variável i = 1…
O número 125 está localizado na terceira linha, segunda coluna = 5… esse programinha me retorna isso… i= 5… é o que eu quero… já testei com vários números até 8 dígitos e ele resolve…
mas se eu entrar com o numero 9 ou 10 dígitos como esse, 1581000583 que está localizado na coluna começado em 43 … de acordo com minha lógica… eu preciso encontrar onde ele inicia… no caso 43 …no while entrando com o numero 1581000583 o resultado sai i = 13 calculando o resultado não é exato. tem casas decimas… no while ((b-i)/k%2!=0). mais o resultado de “i” deveria ser (43) e p= 26350009 . — utilizando a formula p= (b-i)/k … .a variavel “i” tem que soma +10 até chegar a 43… que é o resultado que dividindo chego ao numero inteiro…
se eu entrar com o numero nesse programinha 3643 ele retorna 43… No caso o programa está atendendo … ok
.
Obrigado!
…
package encontrarposicao;
import java.util.Scanner;
public class EncontrarPosicao {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner scanner = new Scanner(System.in);
System.out.println("Digite um numero:");
int b = scanner.nextInt();
char c;
String a;
a = String.valueOf(b);
// System.out.println("Posiçãoes* - " + a.length());
char posicao=(char) (a.length()-1);
int k = 60;
c = a.charAt(posicao);
float i = Character.getNumericValue(c);
long p = 0 ;
System.out.println("Numero encontrado:-->" + "-->" + i );
for (int j = 1; j < 4; j++){
if (i == 3 || i == 9){
i+=10;
}
while ((b-i)/k%2!=0){
i+=10;
System.out.println("Numero encontrado:III" + "-->I" + i );
} if (i>k){
i= i-k;
}
}
p=(long) ((b-i)/k);
System.out.println("Numero encontrado:-->" + p + "-->" + i + "=" + "-->" + (a.length()-1) );
}
}
Já agradeço a ajuda…