Como elevar um numero?

Oi galera será que alguem sabe retornar na saida do monitor um numero elevado a outro! eu estou desenvolvendo um algoritimo em que o expoente de um dado numero va de 0 a 100, e queria que fosse mostrado no monitor como deste modo: 3³! sera que alguem pode me ajudar?

ops… vc ker um caracter ?

Também pensei q fosse isso que ele estava querendo, mas depois de ler o post, vi que ele quer colocar uma letra sobrescrita na outra, igual vc faz no Word. Uma opção acochambrada seria usar dois labels, uma para o número e outro para o expoente, colocando uma fonte menor no expoente e posicionando o mesmo logo acima do label do número. Qdo eu fiz programa com saida no próprio console, eu usava o próprio acento circunflexo para denotar a potencia…

Na saída do monitor que você diz é “console” (ou seja, imprimir naquelas letras brancas em fundo preto) ou em uma tela gráfica (JFrame)?

No primeiro caso, você tem de fazer uns truques com espaçamento, algo como:

 "            100
 "1.0000001      = 1.0001000049501617039213002887121

No segundo caso, use um JLabel e o HTML , algo como

"<html>1.0000001<sup>100</sup>=1.0001000049501617039213002887121</html>"

Truques com espaçamentos ou gambiarra espacial?

Sorry… nao acrescentou nada ao tópico mas eu tinha que lançar essa.

No tempo em que eu estava na faculdade havia um sistema que rodava no mainframe, chamado REDUCE. Ele imprimia fórmulas matemáticas exatamente desse jeito, já que a saída dele era o console (na verdade um terminal IBM 3270).

"           3    2      ---------
"result := x  + y  - 4 V x  +  y  ;
"                         4

http://www.uni-koeln.de/REDUCE/intro/section3_10.html#SECTION00010000000000000000

Acredite se quiser…

[quote=Mark_Ameba][quote=thingol]
No primeiro caso, você tem de fazer uns truques com espaçamento, algo como:
[/quote]

Truques com espaçamentos ou gambiarra espacial?

Sorry… nao acrescentou nada ao tópico mas eu tinha que lançar essa.[/quote]

Truques com espaçamento mesmo Mark, não tem nada de gambiarra pois não existe outra forma de fazer isso com telas de console/tty. Mesmo que use frameworks pra ter ajudar, eles farão o mesmo tipo de coisa.

Edit:

Há uma forma: Se o console usar Unicode, há caracteres de 0 a 9 nele que escrevem como se fossem sup ou sub.

Bruno Laturner!

isso eu vou rodar no console!!

mas com o unicode nao tem jeito de fazer elevar automaticamente, teria que fazer uma sequencia de teste pra saber quanto vale a variavel e depois usar o codigo unicode:

por exemplo

if(n = 3) {

System.out.print(n +"\u00b3");
}

assim fica dificil pois teria que fazer 100 testes!!!

entendeu?

No console acho infinitamente mais fácil escrever assim:

1,00001 ^ 1 = 1,00001
1,00001 ^ 2 = 1,0000200001
1,00001 ^ 3 = 1,000030000300001
1,00001 ^ 4 = 1,00004000060000400001
1,00001 ^ 5 = 1,0000500010000100000500001
1,00001 ^ 6 = 1,000060001500020000150000600001
1,00001 ^ 7 = 1,000070002100035000350002100007
1,00001 ^ 8 = 1,000080002800056000700005600028
...
1,00001 ^ 100 = 1,0010004951617392197799442124942

Não fique inventando frescuras. No console os caracteres Unicode superiores a 127 normalmente não aparecem direito. Portanto nem adianta usar aqueles caracteres Unicode que são os dígitos, só que como expoentes.

Para exibir no console.

System.out.println("10\u00B3");

Abração! :slight_smile:

Para 1, é 0xB9.

Para 2-3, some 0x32 e 0x33 com 0x80 para dar 0xB2 e 0cB3.

Para 0, 4-9, some 0x30 e 0x34-0x39 com 0x2040 para dar 0x2070 e 0x2074-0x2079.

Observação:

Só funciona se o console for Unicode e se a fonte para escrever tiver esses caracteres, senão vai mostrar um monte de ? ou quadradinhos.

[quote=Bruno Laturner][quote=Mark_Ameba][quote=thingol]
No primeiro caso, você tem de fazer uns truques com espaçamento, algo como:
[/quote]

Truques com espaçamentos ou gambiarra espacial?

Sorry… nao acrescentou nada ao tópico mas eu tinha que lançar essa.[/quote]

Truques com espaçamento mesmo Mark, não tem nada de gambiarra pois não existe outra forma de fazer isso com telas de console/tty. Mesmo que use frameworks pra ter ajudar, eles farão o mesmo tipo de coisa.
[/quote]

Ahh… eu tava só brincando e avisei isso. É que o trocadilho “Truque com espaçamento” e “Gambiarra espacial” me parecia engraçado. Até antes de postar.
:oops:

Mais outra forma. Um amigo aqui do trabalho me mostrou.

JLabel l = new JLabel("<html>Teste <font color='red'><b>negrito A<sub>2</sub> 10<sup>23</sup></b></font>"); JOptionPane.showMessageDialog(null, l);