Pages

Thursday, 4 August 2016

Logic Pyramid Solution

Hey all..

I am here today to explain you about how to solve the Logic Pyramid problem as below..

Yeah if the user gives input as n then we have to build a n sized pyramid like this with the specified series..

  00006
 00028 00066
00120 00190 00276
First Logic of series

let 6 and 28 be known
so
Eg
Case 1#

28 - 6 = 22
22+ 16=38
38+28 = 66

Case 2#

66  -  28 =  38
38 + 16 = 54
54 + 66 = 120

Now Code for this in C Language


Code in C Language #


/*

  Logic Pyramid Solution

  Author : Pavan Yekabote

*/


#include<stdio.h>

int series[100];

int level=0;


int getSum(int n)

{

 if(n>0)

  return n+getSum(n-1)// let n=3  3+2+1 = 6 is returned

}


void setSeries(int n)

{

 int diff=0,i;

 series[06;

 series[128;

 for(i=2;i<getSum(n);i++)  // Set series upto E(n) values

 {

  diff = series[i-1]-series[i-2]+16;

  series[i]= diff+ series[i-1];

 }

}


void setSpaces(int n)

{

 int i;

 for(i=0;i<n;i++)  // print n spaces

  printf(" ");

}


int getSize(int n)

{

 int i,size=0;

 for(i=0;i<n;i++// return size of number eg: 123 size: 3

 {

  n=n/10;

  size++;

 }

 return size;

}

void setZeroes(int n)

{

 int i;

 for(i=0;i<5-getSize(n);i++)  // print 5-size zeroes eg: 6 5-1=4 0000

 {

   printf("0")

 }

}

void printNums(int n)

{

 int i;

 for(i=0;i<n;i++)    // Set zeroes and print series for that line

 {

  setZeroes(series[level]);

  printf("%d ",series[level++])

 }

}

void setLines(int n)

{

 int i,j;

 setSeries(n);

 for(i=1,j=n-1;i<=n;i++,j--)  //Set spaces and set i numbers of series in each line and print nextLine

 {

  setSpaces(j);

  printNums(i);

  printf("\n");

 }

}

void main()

{

 int n;

 printf("Enter n value: ");

 scanf("%d",&n);

 setLines(n);

}



No comments:

Post a Comment