回 帖 发 新 帖 刷新版面

主题:自增数列

首先给定一个有两个元素的初始数列S2{1,1},其中S2表示有两个元素的数列;如果该数列的相邻的两个元素的和等于该数列的元素个数,将所以满足条件的两个元素之间放入他们的和元素,这样就可以得到如下数列:
  S2{1,1},S3{1,2,1},S5{1,3,2,3,1},S7{1,3,5,2,5,3,1},…
  给你的问题是,输出数列变换后个数为n(100>n>2)的数列,如果不存在,输出“Impossible!”。
输入
  输入的第一行为一个正整数N,表示测试用例的个数,接下来的N行,每行的第一个数是初始数列的个数n(n<100),第2个数为需要你输出变换后的数列个数m(m<100),接下来为n个正整数,他们都由一个空格隔开。
输出
  标准输出,如果有满足条件的数列,使用一行输出该数列,元素之间使用一个空格分开。如果没有符合条件的数列,就使用一行输出“Impossible!”。
 
样例
输入:
2
2 5 1 1
3 6 2 2 4
输出
1 3 2 3 1
Impossible!

回复列表 (共6个回复)

沙发

哪位高手!帮帮我这个c++新手!

板凳

首先,你baidu过了吗?如果你确定baidu上没有你要的东西,可以继续看后面的文字

首先是输入数据(如果你连这一步都不知道怎么做的话,建议跳过后面所有文字,出点血找人给你做一份),没什么好说的,合理规划你的数据结构,做好入参检验
然后是处理,惯例,伪代码:
直到数组长度大于M
    遍历数组,计算每两个相邻元素之和,用满足条件的元素构造新数组
看起来简单到过分吗?其实抽象完成以后就这么简单,只要你设计了正确的数据存储和算法,那么一定是类似我写的这两行的样子

3 楼


大哥……百度上有……
我还问你啊!
何况我说啦!我是新手!

4 楼

你是新手怎么了?新手就不会思考?新手别人就有义务帮你解答?新手算什么理由?

5 楼

我本来回帖之前写了一行“请不要把新手做为掩饰自己没有做到自己应该做的事情的理由”,后来考虑到lz情绪就删掉,现在看,这句话有必要提出来。你也许觉得我不好说话,但是我想说,如果你真的以后要做这方面工作的话,写会这种简单程序是必经一环,而且一定要学会思考这种简单问题

6 楼

谢谢赐教啊!

我来回复

您尚未登录,请登录后再回复。点此登录或注册