华为机试真题 C++ 实现堆栈中的剩余数字

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试真题 C++ 实现堆栈中的剩余数字相关的知识,希望对你有一定的参考价值。

目录

题目

思路

考点

Code


题目

向一个空栈中依次存入正整数, 假设入栈元素 n(1<=n<=2^31-1)按顺序依次为 nx…n4、 n3、n2、 n1, 每当元素入栈时,如果 n1=n2+…+ny(y 的范围[2,x], 1<=x<=1000),则 n1~ny 全部元素出栈,重新入栈新元素 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,所以两个 6 全部出栈,存入 12,最终栈中只剩一个元素 12。

输入描述:

以上是关于华为机试真题 C++ 实现堆栈中的剩余数字的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试题计算堆栈中的剩余数字用 C++ 编码,速通 (2023.Q1)

华为OD机试真题 C++ 实现组装新的数组2023 Q1 | 200分

华为OD机试真题 C++ 实现组装新的数组2023 Q1 | 200分

华为机试真题 C++ 实现全量和已占用字符集

2022华为机试真题 C++ 实现整数对最小和

华为机试真题 C++ 实现数组拼接