Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //problema 4 (piramide sumas)
- #include <stdio.h>
- #include <stdlib.h>
- /*
- *
- */
- int min(int,int );
- int main(int argc, char** argv) {
- int i,j,b;
- int M=100;
- //printf("ingrese la cantidad de numeros en la base: ");
- //scanf("%d",&b);
- b=4;
- int a[b][b]; // piramide
- int sol[b][b]; // se puede construir la matriz con for tambien
- a[0][0]=2; a[0][1]=M ; a[0][2]=M ; a[0][3]=M;
- a[1][0]=5; a[1][1]=4 ; a[1][2]=M ; a[1][3]=M;
- a[2][0]=1; a[2][1]=4 ; a[2][2]=7 ; a[2][3]=M;
- a[3][0]=8; a[3][1]=6 ; a[3][2]=9 ; a[3][3]=6;
- sol[0][0]=M; sol[0][1]=M ; sol[0][2]=M ; sol[0][3]=M; // se puede construir la matriz con for tambien
- sol[1][0]=M; sol[1][1]=M ; sol[1][2]=M ; sol[1][3]=M;
- sol[2][0]=M; sol[2][1]=M ; sol[2][2]=M ; sol[2][3]=M;
- sol[3][0]=M; sol[3][1]=M ; sol[3][2]=M ; sol[3][3]=M;
- sol[0][0]=2;
- for(i=1;i<b;i++){
- for(j=0;j<=i;j++){// solucion tomando el elemento a[i][j]
- if(j==0) sol[i][j]=sol[i-1][j]+a[i][j];
- else
- sol[i][j]=min(sol[i-1][j-1],sol[i-1][j])+a[i][j];
- }
- }
- int min=M;
- for(i=0;i<b;i++){// hallo el minimo de la base con la suma obtenida en sol
- if(sol[b-1][i]<=min)
- min=sol[b-1][i];
- }
- printf("la suma minima de adyacentes es : %d \n",min);
- return (EXIT_SUCCESS);
- }
- int min(int a , int b){
- if(a<b) return a;
- return b;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement