上楼梯问题c/c

(分钟前 更新) 192 6249

最新回答

你好,楼主,为了我团队的荣誉,我是给你解出来了。
我用的是栈这个数据结构,代码如下,不懂请追问
include"stdlib.h"
include"stdio.h"
typedef struct{
int * base;
int * top;
int stksize;
}stack;
//初始化栈
int init(stack &s,int size)
{
s.base(int *)malloc(size*sizeof(int));
if(!s.base)return -1;
s.tops.base;
s.stksizesize;
return 1;
}
//压栈
int push(stack &s,int e)
{
*s.tope;
s.top++;
return 1;
}
//获得栈长度
int lenth(stack s)
{
int len;
lens.top-s.base;
return len;
}
//取栈顶
int pop(stack &s)
{
if(s.bases.top)return 0;
s.top--;
return 1;
}
//打印栈的所有元素
void prt_stack(stack s)
{
int llenth(s);
int i;
for(i0;i<l;i++)
printf(" %d",*(s.base+i));
printf("&92;n");
}
//打印case n:
void prt_case(int &a)
{
a++;
printf("Case%d:",a);
}
//求栈的总和
int sum_stack(stack s)
{
int llenth(s);
int i;
int sum0;
for(i0;i<l;i++)
sum+*(s.base+i);
return sum;
}
int main()
{
stack s;
int i,count0;
int m,n; //n 个台阶, 最大走m 步
scanf("%d",&n);
scanf("%d",&m);
//初始化一个大小为n的栈
if(init(s,n)-1)
{
printf("内存分配失败&92;n");
return 0;
}
//全部赋值为1
for(i0;i<n;i++)
*(s.base+i)1;
//求解循环
while(*(s.base)<m)
{
if(sum_stack(s)n)
{
prt_case(count);
prt_stack(s);
pop(s);
*(s.top-1)+1;
}
if(sum_stack(s)<n)
{
push(s,1);
}
}
return 1;
}
wangeunice 2024-05-16
为啥子要匿名呢?
车厘子妈妈 2024-05-08

扩展回答

热门问答

装修专题

首页 >  上楼梯问题c/c

其他人还看了

页面运行时间: 0.025518894195557 秒