Java - Ayuda con pregunta de examen

 
Vista:
Imágen de perfil de Ciro

Ayuda con pregunta de examen

Publicado por Ciro (3 intervenciones) el 03/09/2016 19:59:28
Estimados de la web del programador, llevo varios dias intentado solucionar este ejercicio, pero no se como, necesito una ayuda por favor, y muchas gracias.

dejo el enunciado y el código que hasta el momento he escrito:
Elabore un programa en JAVA, que permita sumar los n primeros términos de la siguiente serie[4 puntos].
* S = 3^(0/1) – 5^(1/2) + 7^(1/3) – 11^(2/4) + 13^(3/5) – 17^(5/6) + 19^(8/7)....

//CÓDIGO
-------------------------------------------------------------------------------------------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public static void main(String[] args) {
        Scanner lector;
        double s=0;
        int fibo=0;
        int primero=0;
        int segundo=1;
        int limite=0;
        int numerador=0;
        int potnum=0;
        int potdeno=1;
        int signo=1;
        int base=0;
        int contador=0;
        int x[]={base, potnum, potdeno};
 
         for(int a=0; a<x.length;a++){
            System.out.println("Arreglo en indice: " +a +"es igual a: " +x[a] );
 
                lector=new Scanner(System.in);
            System.out.print("Ingrese el límite;" );
            limite=lector.nextInt();
            for(int i=0; i<limite;i++){
                fibo=primero+segundo;
                primero=segundo;
                segundo=fibo;
                potnum=fibo;
       //     System.out.println("NUmerador" +potnum);
            }
                for(contador=1;contador<limite;potdeno++){
                    contador=potdeno;
        //    System.out.println("Denominador " +potdeno);
            }
                for(int i=2; i<=limite; i++){
                    if ((i%2)!=0){
                    base=i;
               // System.out.println("Base" +base);
                }
                 for(contador=0; contador<limite; contador++){
                    signo=signo*-1;
                }
              }
 
            System.out.printf("S = "+base*signo +"^(" +potnum +"/" +potdeno +")");
         }
    }
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 228
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda con pregunta de examen

Publicado por Thanatos (97 intervenciones) el 04/09/2016 09:52:07
Si separas los problemas principales que componen un ejercicio y los resuelves individualmente, encontrarás la solución con mayor facilidad.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import java.util.Scanner;
 
class Serie {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        System.out.print("n = ");
        int num = sc.nextInt();
        sc.close();
 
        System.out.println("S = " + calcularSuma(num));
    }
 
    private static double calcularSuma(int numero) {
        double suma = 0.0;
        double divisor;
        int base = 3;
 
        for (int cont = 0; cont < numero; ++cont) {
            divisor = cont + 1.0;
            if (divisor % 2 != 0) {
                suma += Math.pow(base, fibonacci(cont) / divisor);
            } else {
                suma -= Math.pow(base, fibonacci(cont) / divisor);
            }
            base = siguientePrimo(base);
        }
        return suma;
    }
 
    private static int fibonacci(int numero)  {
        if (numero < 2) {
            return numero;
        }
        return fibonacci(numero - 1) + fibonacci(numero - 2);
    }
 
    private static int siguientePrimo(int numero) {
        while (!esPrimo(++numero)) { }
        return numero;
    }
 
    private static boolean esPrimo(int numero) {
        int divisor = 2;
 
        while (divisor <= Math.sqrt(numero)) {
            if (numero % divisor == 0) {
                return false;
            }
            ++divisor;
        }
        return true;
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 228
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda con pregunta de examen

Publicado por Thanatos (97 intervenciones) el 04/09/2016 10:39:15
Una corrección del método calcularSuma de mi anterior respuesta:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private static double calcularSuma(int numero) {
    double suma = 0.0;
    int divisor;
    int base = 3;
 
    for (int cont = 0; cont < numero; ++cont) {
        divisor = cont + 1;
        if (divisor % 2 != 0) {
            suma += Math.pow((double) base, fibonacci(cont) / (double) divisor);
        } else {
            suma -= Math.pow((double) base, fibonacci(cont) / (double) divisor);
        }
        base = siguientePrimo(base);
    }
    return suma;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar