decco05
Fevereiro 13, 2014, 11:49am
#1
Boa tarde estou treinando um modo ternario e recursivo
só que está dando um erro dizendo que é uma expressão ilegal alguem poderia me ajudar?
Obrigado
public class Exercicio03 {
private static long numeroFatorial;
static long numeroFatorial(int parametro){
(parametro < 2) ? numeroFatorial 1 : numeroFatorial *= parametro;
return numeroFatorial;
}
[quote=decco05]Boa tarde estou treinando um modo ternario e recursivo
só que está dando um erro dizendo que é uma expressão ilegal alguem poderia me ajudar?
Obrigado
[code]
public class Exercicio03 {
private static long numeroFatorial;
static long numeroFatorial(int parametro){
(parametro < 2) ? numeroFatorial 1 : numeroFatorial *= parametro;
return numeroFatorial;
}
[/code][/quote]
Resolva assim
[code]public static long fatorial(int n) {
return n <=1 ? n :fatorial(n - 1)*n;
} [/code]
Pra utilizar um operador ternário, você deve atribuir seu retorno à uma variável. Não é uma redução de sintaxe do IF.
var = (validacao) ? retorno_para_verdadeiro : retorno_para_falso;
decco05
Fevereiro 13, 2014, 12:48pm
#4
Obrigado Janerson e victormagno agradeço pela ajuda
Para caso alguém queira o código está logo abaixo
package Pacote;
import javax.swing.JOptionPane;
/**
* aula : 01
* Data : 13/02/2014
* @author douglas.decco
*/
public class Exercicio03 {
private static long numeroFatorial;
static long numeroFatorial(int parametro) {
return numeroFatorial = (parametro < 2) ? 1 : numeroFatorial * parametro;
}
public static void main(String[] args) {
JOptionPane.showMessageDialog(null, (String.valueOf(
Exercicio01.numeroFatorial(Integer.parseInt(
JOptionPane.showInputDialog("digite um numero"))))));
}
}
Um aviso, esse código não funciona para calcular fatoriais. Não tem recursão nem iteração nele.
decco05
Fevereiro 13, 2014, 2:51pm
#6
[quote=Bruno Laturner][quote=decco05]
Para caso alguém queira o código está logo abaixo
[/quote]
Um aviso, esse código não funciona para calcular fatoriais. Não tem recursão nem iteração nele.[/quote]
Bom dia bruno … vlws por opinar, mas sinceramente fiquei boiando sobre o que vc me disse, poderia me dizer o que está errado para eu poder arrumar?
Muito obrigado!
Aqui explica o que é fatorial, e o código sem e com recursividade: http://includec.blogspot.com.br/2009/04/fatorial-recursivo-em-c.html
Wikipedia tb consegue explicar melhor do que eu o que é recursividade .
No teu exemplo você tem uma variável global e um método com os mesmos nomes. Isso não é recursão.