题目如下:

这道题经过好久的思考也没找到能一次性输入两组数的方法,只能一次性处理一组数,所以就把代码放上来,欢迎交流留言一起讨论可以放两组数的方法~(QQ 841587906)

 1 #include <iostream>
2 #include <vector>
3 #include <algorithm>
4 #include <string.h>
5 #include <sstream>
6 using namespace std;
7
8 int swapNum(int length,vector<int>,vector<int>);
9
10 int main()
11 {
12 /*先接收数列的长度 创建原数组
13 //接收转换数组 遍历转换数组 交换原数组的数据 再跟目标数组比较是否相等
14 //接收目标数组*/
15
16
17
18
19 vector<int> trans_vec,aim_vec;
20 //数组长度
21 int length;
22 cin >> length;
23
24 //给两个数组分配空间
25 trans_vec.reserve(length);
26 aim_vec.reserve(length);
27
28 //接收的数值
29 int number;
30 //数组的索引值
31 int index = 0;
32
33 //给转换数组和目标数组赋值
34 while(index < length && cin >> number ){
35 trans_vec.insert(trans_vec.begin()+index,number);
36 index ++;
37 }
38 index = 0;
39 while(index < length && cin >> number){
40 aim_vec.insert(aim_vec.begin()+index,number);
41 index ++;
42 }
43
44 //跳出循环的两个条件:time超过次数;经过time转换变成目标数组
45 int time = swapNum(length,trans_vec,aim_vec);
46 if(time < 50){
47 cout << time << endl;
48 }else{
49 cout << "impossible" << endl;
50 }
51
52
53
54 return 0;
55
56 }
57
58
59 int swapNum(int length,vector<int> trans_vec,vector<int> aim_vec){
60 //创建一个经过变化的目标数组 和 原数组
61 int supposeaim_vec[length],orig_array[length];
62 for(int i = 0;i <length;i++){
63 orig_array[i] = i;
64 }
65
66 //读取转换数列中的值 来操作原数组
67 //记录执行转换数组的次数
68 int time = 0;
69 bool flag = false;
70 while(time < 50 && !flag){//当超过50就不再继续操作
71 for(int i = 0;i < length; i++){
72 int j = trans_vec[i];
73 //将原数组的第i个元素放到目标数组的第j个位置
74 supposeaim_vec[j] = orig_array[i];
75 }
76 //运行完将原数组
77 memcpy(orig_array,supposeaim_vec,length*sizeof(int));
78 //完成一次就次数+1
79 time++;
80 flag = true;
81 for(int i = 0;i < length;i++){
82 if(supposeaim_vec[i] != aim_vec[i]){
83 flag = false;
84 }
85 }
86 }
87
88
89 return time;
90
91 }

C++之数组转换的更多相关文章

  1. C#字节数组转换成字符串

    C#字节数组转换成字符串 如果还想从 System.String 类中找到方法进行字符串和字节数组之间的转换,恐怕你会失望了.为了进行这样的转换,我们不得不借助另一个类:System.Text.Enc ...

  2. 100怎么变成100.00 || undefined在数字环境下是:NaN || null在数字环境下是0 || 数组的toString()方法把每个元素变成字符串,拼在一起以逗号隔开 || 空数组转换成字符串后是什么?

    100怎么变成100.00?

  3. js对象、数组转换字符串

    对象转换成字符串需要使用toString()方法. 1 var a = function(){ 2 console.log(111); 3 }; 4 var b = a.toString(); 5 c ...

  4. C/C++中数组转换成指针的情况

    数组转换成指针:在大多数用到数组的表达式中,数组自动转换成指向数组首元素的指针.比如: int ia[10]; int *p = ia; //ia转换成指向数组首元素的指针 以下情况上述转换不会发生: ...

  5. http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理,及它的逆向函数

    http_build_query()就是将一个数组转换成url 问号?后面的参数字符串,并且会自动进行urlencode处理 例如: $data = array( 'foo'=>'bar', ' ...

  6. 如何将PHP对象数组转换成普通数组

    /** * 对象数组转为普通数组 * * AJAX提交到后台的JSON字串经decode解码后为一个对象数组, * 为此必须转为普通数组后才能进行后续处理, * 此函数支持多维数组处理. * * @p ...

  7. 字符串集合或字符串数组转换成json数组

    字符串可以是List<String>类型的字符串集合,也可以是String[]类型的字符串数组,二者转换成JSON数组的方式没有什么不同.下面代码注意关键的部分即可(画红线部分). 1. ...

  8. 怎样把php数组转换成字符串,php implode()

    实例代码 一维数组转换成字符串代码! <?php $arr1=array("shu","zhu","1"); $c=implode(& ...

  9. $.toJSON的用法或把数组转换成json类型

    1. html页面全部代码 <html> <head>     <title></title> <script src="../../S ...

  10. C# 之 将string数组转换到int数组并获取最大最小值

    1.string 数组转换到 int 数组 " }; int[] output = Array.ConvertAll<string, int>(input, delegate(s ...

随机推荐

  1. DeWeb发展历程! 从2015年开始

    有位朋友问: [高中]长兴(667499XX) 2021-01-15 15:52:11 deweb会长期做吗 我查了一下,发现deweb最早从2015开始,算起来已经做了5~6年了,目前已日臻成熟!

  2. 服务集与AP的配合

    一.实验目的 1)掌握添加无线网络配置 2)掌握配置信道和协议使用并配置在一个天线上同时运行两个服务集,即两个无线网络 二.实验仪器设备及软件 仪器设备:一台AC,两台AP,一台AR,一台LSW 软件 ...

  3. [mysql课程作业]我的大学|作业

    第八周周五 1.将xs表中王元的专业改为"智能建筑". # update xs set 专业名='智能建筑' where 姓名='王元'; # select * from xs w ...

  4. Swoft+Docker

    Docker 以下纯属个人理解: Docker就是一种虚拟机,将环境打包成镜像,等于做了一个Linux系统裁剪. 镜像就是我们安装系统的镜像,里面包含了你的代码和环境. 容器就是一个虚拟机,你可以用一 ...

  5. SimpleNVR流媒体服务在多分屏直播实时阅览时所遇到问题的解决

    视频有一个流的概念,称为流媒体.当大量的客户端或WEB访问监控摄像机的时候,大多数的录像机无法承受那么大的网络压力,这时候SimpleNVR流媒体服务器的优势就显示出来了.其能将客户端的访问压力转到服 ...

  6. (原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题

    一.前言 使用WinForm很久了,多多少少遇到一些小BUG. 这些小BUG影响并不严重,而且只要稍微设置一下就能正常使用,所以微软也一直没有修复这些小BUG. 本来并不足以写篇文章去记录,但是昨天遇 ...

  7. IDEA maven Run Maven 启动方式

    首先想要使用 Run Maven 启动需要在IDEA设置里找到plugins  在plugins窗口下面找到Browse Repositories   打开Browse Repositories 下载 ...

  8. php多域名跳转nginx

    当web服务器nginx已经配置好了网站根目录时,需要增加另外的域名.但是由于限制必须在原来的网站根目录下面,nginx已经无法实现.只能通过php index页面进行调试.如下面: define(' ...

  9. [cf1458C]Latin Square

    维护$n^{2}$个三元组$(x,y,z)$,每一个三元组描述$a_{x,y}=z$ 对于RLDU这四个操作,即将所有三元组的$x$或$y$执行$\pm 1$(模$n$意义下) 对于IC这两个操作,即 ...

  10. [hdu6991]Increasing Subsequence

    令$f_{i}$​​表示以$i$​​为结尾的极长上升子序列个数,则有$f_{i}=\sum_{j<i,a_{j}<a_{i},\forall j<k<i,a_{k}\not\i ...