Ayuda con suma en java.

Iniciado por casio, 13 Diciembre 2012, 23:24 PM

0 Miembros y 1 Visitante están viendo este tema.

casio

Buenas, tengo un ejercicio relacionado con un triangulo de pascal el cual debo de sumar todos los valores que salen.

Se que la variable que almacena el valor es la variable dato, he probado cosas, pero no se como hacerlo.

Dejo el código.

import java.io.*;
import java.util.Scanner;
class piramide2 {

public static int elemento (int fila, int columna) {
if (fila <1 ||columna < 1) return 0;
if (columna == 1) return 1;
return elemento (fila-1, columna) + elemento (fila-1, columna-1) + elemento
(fila-1, columna-2);
}
public int total (int a){
   a+=a;
   return a;
}
public static void main (String[] args) throws IOException{
int numfilas ;
Scanner teclado=new Scanner(System.in);
System.out.println ("Introduce la altura de la pirámide: ");
numfilas = teclado.nextInt();
for( int i=1; i<( numfilas +1); i++)
{
   for( int e=0; e<( numfilas - i); e++)
System.out.print ("\t");
for( int j=1; j<(2* numfilas +1); j++) {
int dato = elemento(i, j);
if (dato > 0)
System.out.print (dato+ "\t" );
}
System.out.println (" ");
}
}
}

Una pista o ayuda no estaría nada mal!

Gracias de antemano  :)
El ordenador no es una máquina inteligente que ayuda a gente estúpida, de hecho, es una estúpida máquina que funciona sólo en manos de gente inteligente.

kasiko

¿fallo? ¿error?

Por cierto, estan las etiquetas CODE
Nos vemos...


casio

#2
Código (java) [Seleccionar]

import java.io.*;
import java.util.Scanner;
class piramide2 {

public static int elemento (int fila, int columna) {
if (fila <1 ||columna < 1) return 0;
if (columna == 1) return 1;
return elemento (fila-1, columna) + elemento (fila-1, columna-1) + elemento
(fila-1, columna-2);
}
public int total (int a){
       a+=a;
       return a;
}
public static void main (String[] args) throws IOException{
int numfilas ;
int suma=0;
Scanner teclado=new Scanner(System.in);
System.out.println ("Introduce la altura de la pirámide: ");
numfilas = teclado.nextInt();
for( int i=1; i<( numfilas +1); i++)
{
       for( int e=0; e<( numfilas - i); e++)
System.out.print ("\t");
for( int j=1; j<(2* numfilas +1); j++) {
int dato = elemento(i, j);
if (dato > 0)
System.out.print (dato+ "\t" );
suma+=dato;
}
System.out.println (" ");
}
System.out.println("La suma de los valores es: " +suma);
}
}


Lo que buscaba era poder guardar todos los valores de la piramide pascal. Ejemplo:

Introduce la altura de la pirámide:
4
         1   
      1   1   1   
   1   2   3   2   1   
1   3   6   7   6   3   1   
La suma de los valores es: 40

P.D: pongo la etiqueta code /code con los [] pero no sale como debería, porque?
El ordenador no es una máquina inteligente que ayuda a gente estúpida, de hecho, es una estúpida máquina que funciona sólo en manos de gente inteligente.

jhonatanAsm

intenta ponerle sus llaves a este cuerpo:

if (dato > 0)
System.out.print (dato+ "\t" );
suma+=dato;

salu2.
mi primer lenguaje fue ensamblador, tengo 60 años, y no creo que haya sido un error.

- La mayor complejidad de todas es hacer complejo algo que no lo es.

- El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.

casio

Jajajaja gracias, pero ya me había puesto al respuesta, linea 27-29 en el código anterior.

Pero gracias de todas formas ;)
El ordenador no es una máquina inteligente que ayuda a gente estúpida, de hecho, es una estúpida máquina que funciona sólo en manos de gente inteligente.