趋势2017校招 笔试题

来源:互联网 发布:c语言数组赋初值 编辑:程序博客网 时间:2024/03/29 16:52

1

现有给定升序排列的整型数组a[n]和整数S,需在整型数组中找到任意个下标,使得各下标对应数字之和为S,输出所有可能的下标组合。
例如:
数组 1,4,8,10,12,15,22,25,31
X = 30
可得:
下标: 2,5:a[2]+a[5]=30
下标: 0,1,3,4:a[0]+a[1]+a[3]+a[4]=30

使用下面的函数原型:
int searchNumbers(int data[], unsigned int length, int sum)
{

}

2

有一个堆栈,可以进行以下两个操作
1)S – 将一个输入的数字压入栈中
2)X – 将栈中的一个数字弹出至输出
已知的输入数据流是1,2,3,4,5,6六个数字(从小到大),在任意时刻,只要栈里有数字,可以进行X操作
例如:通过SXSSSSXXSXXX操作,可以输出154632序列,而不管通过何种操作,无法输出154623序列

请编程实现打印出所有不可能的输出序列

注:编程实现时,通过注释能清楚的表达算法;定义了功能明确的函数,或子函数;即使有错或局部实现,也可酌情给分。若本题采用C/C++实现,可以使用标准C库和STL;如果采用Java实现,可以使用Java SE中的API。

0 0
原创粉丝点击