文章

40

粉丝

607

获赞

68

访问

419.5k

头像
1366怪异的洗牌
推荐阅读
P1366 吉林大学机试题
发布于2020年2月25日 00:41
阅读数 10.4k

#include<iostream>
#include<algorithm>

using namespace std;

int main() {
	int a[1000];
	int n, k,x;
	cin >> n >> k;
	cin >> x;
	for (int i = 0;i < n;i++) {//将数组赋值
		a[i] = i + 1;
	}
	for (int j = 0;j < k;j++) {//开始操作
		rotate(a, a + x, a + n);//shift操作
		reverse(a, a + n / 2);//flip操作。

	}
	for (int k = 0;k < n;k++) {//开始输出数组,关注输出格式,最后一个数字后没有空格
		if (k != n - 1) {
			cout << a[k] << " ";
		}
		else {
			cout << a[k];
		}
	}
	cout << endl;
	return 0;
}
1 2 3 4 5 6

这个数组下标为0~5,里面的值为1~6即 :

a[0]=1;    a[1]=2;    a[2]=3;    a[3]=4;    a[4]=5;    a[5]=6;

(下面两个函数都会对这个数组使用一次,把这个数组叫做 样例数组

 

rotate函数需要三个参数  rotate(开始位置,中间位置,结束位置)

若对上面样例数组使用ratate(a,a+4,a+6)后数组就会变成如下:

5 6 1 2 3 4

reverse函数需要两个参数,reverse(开始位置,结束位置)

若对上面样例数组使用re...

登录查看完整内容


登录后发布评论

1 条评论
admin SVIP
2020年2月25日 13:36

函数用的很溜yes

赞(0)