juno.rr 3 de mai. de 2011
Olá,
tenta assim, acho que funciona:
public double recEx ( double inc , double n , double sum ) {
if ( dec == 1 ) return sum ;
sum += ++ inc / n -- ;
System .out .println ( sum + " += " + inc + " / " + n ) ;
return recEx ( inc , n , sum ) ;
}
Olha a saída:
recEx ( 0 , 10 , 0 );
0.1 += 1.0 / 9.0
0.3222222222222222 += 2.0 / 8.0
0.6972222222222222 += 3.0 / 7.0
1.2686507936507936 += 4.0 / 6.0
2.101984126984127 += 5.0 / 5.0
3.3019841269841272 += 6.0 / 4.0
5.051984126984127 += 7.0 / 3.0
7.718650793650793 += 8.0 / 2.0
12.218650793650793 += 9.0 / 1.0
12.218650793650793
Armando_Pereira 4 de mai. de 2011
juno.rr:
Olá,
tenta assim, acho que funciona:
public double recEx ( double inc , double n , double sum ) {
if ( dec == 1 ) return sum ;
sum += ++ inc / n -- ;
System .out .println ( sum + " += " + inc + " / " + n ) ;
return recEx ( inc , n , sum ) ;
}
Olha a saída:
recEx ( 0 , 10 , 0 );
0.1 += 1.0 / 9.0
0.3222222222222222 += 2.0 / 8.0
0.6972222222222222 += 3.0 / 7.0
1.2686507936507936 += 4.0 / 6.0
2.101984126984127 += 5.0 / 5.0
3.3019841269841272 += 6.0 / 4.0
5.051984126984127 += 7.0 / 3.0
7.718650793650793 += 8.0 / 2.0
12.218650793650793 += 9.0 / 1.0
12.218650793650793
Caro Juno.rr
Me parece a sua opinião, bem interessante, porém da onde vem aquela variável “dec”
É declarada aonde e se refere a o que exatamente nesse caso?
Outra pergunta, a variável “inc” seria a que recebe um valor pelo Scanner por exemplo?
Obrigado pelos esclarecimentos. Bom dia.
Armando_Pereira 4 de mai. de 2011
[quote=Armando Pereira]
juno.rr:
Olá,
tenta assim, acho que funciona:
public double recEx ( double inc , double n , double sum ) {
if ( dec == 1 ) return sum ;
sum += ++ inc / n -- ;
System .out .println ( sum + " += " + inc + " / " + n ) ;
return recEx ( inc , n , sum ) ;
}
Olha a saída:
recEx ( 0 , 10 , 0 );
0.1 += 1.0 / 9.0
0.3222222222222222 += 2.0 / 8.0
0.6972222222222222 += 3.0 / 7.0
1.2686507936507936 += 4.0 / 6.0
2.101984126984127 += 5.0 / 5.0
3.3019841269841272 += 6.0 / 4.0
5.051984126984127 += 7.0 / 3.0
7.718650793650793 += 8.0 / 2.0
12.218650793650793 += 9.0 / 1.0
12.218650793650793
import java.util.* ;
public class Exemplo {
/**
* @param args
*/
static double num ;
public static void main ( String [] args ) {
// TODO Auto-generated method stub
Scanner dd = new Scanner ( System . in );
System . out . println ( "Digite um número" );
num = dd . nextDouble ();
System . out . println ( "\n" );
System . out . println ( "Resultado = " + recEx ( 0.0 , num , 0.0 ));
}
public static double recEx ( double inc , double n , double sum ){
if ( n == 0 ) return sum ;
sum += ++ inc / n -- ;
System . out . println ( sum + " += " + inc + " / " + n );
return recEx ( inc , n , sum );
}
}
Está é uma saida.
Digite um número
2
0.5 += 1.0 / 1.0
2.5 += 2.0 / 0.0
Resultado = 2.5
:thumbup: Valeu mesmo !!!
juno.rr 4 de mai. de 2011
Opa, “my bad”.
Onde está “dec” era pra ser “n” mesmo.
as variáveis “inc” e “sum”, recebem sempre 0 na primeira chamada.
Valeu.