|
# 1.据说毕达哥拉斯理论家,发现了在数字序列1,3,6,10,15,21……(省略号说明这个序列无限地继续下去)中有一种奇特的联系。即数列中的第n项是由第n-1项加n得到的。例如,第2项是由第1项(1)加上2,得3。第3项是由第2项(3)加上3,得6。这个序列中的数字被称为三角数字。请用两种不同的算法实现,提示用户输入一个n值,程序显示对应的三角数字值。(22分)
# 2.假设D:/dir目录下放着100个文件,文件名为:file001.txt,file002,file003.txt......file100.txt。请写一高效程序,将这100个文件的内容按文件名编号顺序合并成一个文件file.txt。(22分)
# 3.任意给定一个大于等于10的整数A,请写一程序,以最小的时间复杂度找出比A小并且最接近A的一个整数B。要求:A与B的每位之和相等(28分)
例:如果A=123 那么B=114
如果A=20 那么B=11
如果A=10 那么B=1
请先写出思路,然后以java代码实现(注:最小的时间复杂度)
# 4. 按以下要求实现一个程序:(28分)
1) 有两个整数集合(A和B),A初始化时,里面包含唯一一个整型数:9。
2) 开启三个线程,每个线程每次从A中获取一个整型数,并将这个数乘以一个随机数,然后将结果存入到B中。随机数要求为大于等于2,且小于10000的整数。当A中没有数据时,这个线程需要等待,直到A中重新有了数据则又开始取数。
3)开启另外四个线程,每个线程每次从B中获取一个数据,将其转化成个位数字,存入到A中,且0和1应该被忽略。比如,将123转化成1,2,3三个数字,并将2和3存入到A中。当B中没有数据时,这个线程需要等待,直到B中重新有了数据则又开始取数。
4) A和B都为空时,程序结束。
我回去闭关算了.... |
|