zl程序教程

您现在的位置是:首页 >  后端

当前栏目

华为OD机试 -入栈出栈(Java) | 机试题+算法思路+考点+代码解析 【2023】

2023-09-11 14:20:21 时间

入栈出栈

题目

向一个空栈中依次存入正整数
假设入栈元素N(1 <= N <= 2^31-1)
按顺序依次为Nx ... N4、N3、N2、N1,
当元素入栈时,如果N1=N2+...Ny (y的范围[2,x],1 <= x <= 1000)
N1Ny全部元素出栈,重新入栈新元素M(M=2*N1)
如依次向栈存储6、1、2、3,当存储6、1、2
栈底至栈顶以此为[6、1、2]:当存入3时,3=2+1,
3、2、1全部出栈,重新入栈元素6(6=2*3)此时栈中有元素6
因为6=6,所有两个六全部出栈存入12
最终栈中只剩一个元素12

输入

使用单个空格隔开的正整数的字符串
如:5 6 7 8,左边的数字先入栈
输入的正整数个数为x
1 <= x <= 1000

输出

最终栈中存留的元素值,元素值使用空格隔开,
8 7 6 5,栈顶数字