Series y Sumatorias en Java
Para ir conociendo el lenguaje de programacion en Java, el hacer ejercicios de generar
series y calcular sumatorias nos ayuda a ir aprendiendo el uso correcto del for y el while.
SERIES
EJEMPLOS
1. Generar la serie de fibonacci
Si n=9 se tendra: 0,1,1,2,3,5,8,13,21
2. Generar la siguiente serie
Si n=18 se debe mostrar 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5,6,6,
?
1
2
3
4
5
6
7
8
9 import java.util.Scanner;
1
0 class Series {
1
1 public static void main(String[] args) {
int n,j,x,i;
1 Scanner lee=new Scanner(System.in);
2 n=lee.nextInt();
1 j=1;
3 x=1;
1 for (i = 1; i <= n; i++) {
System.out.print(x+",");
4 if (j < x) {
1 j++;
5 } else {
1 j=1;
x++;
6 }
1 }
7 System.out.println();
1 }
8 }
1
9
2
0
2
1
2
2
3. Generar la siguiente serie
Si n=18 se debe mostrar 1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,
?
1
2
3
4
5
6
7
8
9
1 import java.util.Scanner;
0
class Series2 {
1
1 public static void main(String[] args) {
1 int n,x,j,b,i;
2 Scanner lee=new Scanner(System.in);
1 n=lee.nextInt();
x=1;
3 j=1;
1 b=1;
4 for (i = 1; i <= n; i++) {
1 System.out.print(b+",");
5 if (j < x) {
j++;
1 } else {
6 j=1;
1 x++;
7 b=1-b;
}
1
}
8 }
1 }
9
2
0
2
1
2
2
2
3
4. Generar la serie de numeros primos
Si n=10 se debe mostrar 2,3,5,7,11,13,17,19,23,29
?
1 import java.util.Scanner;
2
class Series {
3
4
public static void main(String[] args) {
5 int n,c,p,d;
6 Scanner lee=new Scanner(System.in);
7 n=lee.nextInt();
8 c=1;
p=2;
9 d=2;
1 while(c<=n){
0 if(p%d==0){
1 if(p==d){
1 System.out.print(p+",");
c++;
1 }
2 d=2;
1 p++;
3 }
else
1 d++;
4 }
1 }
5 }
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
SUMATORIAS
EJEMPLOS
1. Resolver la siguiente sumatoria
?
1 import java.util.Scanner;
2
public class Sumatorias {
3
4
public static void main(String[] args) {
5
6 int a, j, n, x;
7 double m = 3, s = 0;
8 System.out.println("valor de n : ");
9 Scanner lee = new Scanner(System.in);
n = lee.nextInt();
1 // para x
0 System.out.println("valor de X : ");
1 lee = new Scanner(System.in);
1 x = lee.nextInt();
1 a = 1;
j = 1;
2 for (int i = 1; i <= n; i++) {
1 s = s + (Math.pow(x, a)) / m;
3 m = m + 3;
1 if (j < a)
j++;
4 else {
1 a++;
5 j = 1;
1 }
6 }
System.out.println("Resultado = " + s);
1 }
7 }
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
(*) En esta parte del diagrama de flujo se tiene (x^a)/m, que en codigo Java se utiliza
Math.pow(x,a) y la variable m en java es de tipo double, y todo se guarda en la variable s
que tambien es double. RECUERDA que para obtener un valor real se debe dividir
ValorReal/ValorEntero o tambien ValorEntero/ValorReal
Resolver la siguiente sumatoria
?
1
2
3
4
5
import java.util.Scanner;
6
7 public class Sumatorias2 {
8
9 static int fibo(int n){
1 int a,b,c;
0 a = -1;
1 b = 1;
c=0;
1 for (int i = 1; i <= n; i++) {
1 c = a + b;
2 a = b;
1 b = c;
}
3 return c;
1 }
4
1
5
1
6
?
1
2
3
4
5
6
7
8 static int primo(int n){
9 int c,d,p,primo;
1 c=1;
p=2;
0 d=2;
1 primo=2;
1 while(c<=n){
1 if(p%d==0){
2 if(p==d){
primo=p;
1 c++;
3 }
1 d=2;
4 p++;
}
1 else
5 d++;
1 }
6 return primo;
1 }
7
1
8
1
9
2
0
?
1 public static void main(String[]
args) {
2
3
int n,num;
4 double den, s = 0;
5 System.out.println("valor de
6 n : ");
7 Scanner lee = new
Scanner(System.in);
8 n = lee.nextInt();
9
1 for (int i = 1; i <= n; i++)
0 {
1 //llamamos a la funcion
1 fibo el cual
//nos devuelva el fibo que
1 corresponde
2 //al termino i-esimo
1 num=fibo(i);
3 //llamamos a la funcion
primo el cual
1
//nos devuelva el primo que
4 corresponde
1 //al termino i-esimo
5 den=primo(i);
1 if (i % 2 == 0) {
System.out.print(num+"/"+d
6 en+"+");
1 s=s-num/den;
7 }
1 else {
8 System.out.print(num+"/"+d
en+"-");
1 s=s+num/den;
9 }
2 }
0 System.out.println("\nResult
ado = " + s);
2 }
1 }
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
(*) En esta parte del diagrama de flujo se esta llamando a dos funciones una de ellas, la
funcion fibo con el parametro i, para que nos devuelva el valor q corresponde a ese termino,
y de la misma forma la funcion primo. Es decir
Si fibo(4) en la serie de fibonacci corresponde al valor 2, es decir 0,1,1,2
Si primo(4) en la serie de fibonacci corresponde al valor 7, es decir 2,3,5,7
Es asi que cuando la variable i vale 1, se pide el fibo(1)=0 y el primo(1)=2
cuando la variable i vale 2, se pide el fibo(2)=1 y el primo(2)=3
y asi sucesivamente..