HERE IS THE CODE
Bottom Up Approach -
Top Down Approach -
Bottom Up Approach -
//Bottom Up approach
#include<stdio.h>
int solution[1000];
int min(int a,int b)
{
if(a<b)
return a;
else
return b;
}
int find_minm_stairs(int n)
{
int i;
for(i=1;i<=n;i++)
{
if(i-1>=0)
solution[i]=solution[i-1]+1;
if(i-2>=0)
solution[i]=min(solution[i],solution[i-2]+1);
if(i-3>=0)
solution[i]=min(solution[i],solution[i-3]+1);
}
return solution[n];
}
void main()
{
int total_stairs,minm;
printf("Enter the total number of stairs\n");
scanf("%d",&total_stairs);
solution[0]=0;
minm=find_minm_stairs(total_stairs);
printf("The minimum number of steps required are %d",
minm); }
Top Down Approach -
//Top down approach
#include<stdio.h>
int solution[1000];
int min(int a,int b)
{
if(a<b)
return a;
else
return b;
}
int find_minm_stairs(int n)
{
if(solution[n]==-1)
{
if(n-1>=0)
solution[n]=find_minm_stairs(n-1)+1;
if(n-2>=0)
solution[n]=min(solution[n],
find_minm_stairs(n-2)+1); if(n-3>=0) solution[n]=min(solution[n],
find_minm_stairs(n-3)+1);
}
return solution[n];
}
void main()
{
int total_stairs,minm,i;
printf("Enter the total number of stairs\n");
scanf("%d",&total_stairs);
solution[0]=0;
for(i=1;i<=1000;i++)
solution[i]=-1;
minm=find_minm_stairs(total_stairs);
printf("The minimum number of steps required are %d",minm);
}
No comments:
Post a Comment