题目如下:

这道题经过好久的思考也没找到能一次性输入两组数的方法,只能一次性处理一组数,所以就把代码放上来,欢迎交流留言一起讨论可以放两组数的方法~(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. python进阶(22)pydantic--数据类型校验

    pydantic库的作用 pydantic库是一种常用的用于数据接口schema定义与检查的库. Pydantic 在运行时强制执行类型提示,并在数据无效时提供用户友好的错误信息. pydantic安 ...

  2. 【java+selenium3】模态框处理(五)

    一.模态框的定义: 模态对话框(Modal Dialogue Box , 又叫做模式对话框),是指在用户想要对话框以外的应用程序进行操作时候,必须先对该对话框进行响应.如单击[确定]或者[返回]按钮等 ...

  3. TypeScript 泛型及应用

    TypeScript 泛型及应用 一.泛型是什么 二.泛型接口 三.泛型类 四.泛型约束 4.1 确保属性存在 4.2 检查对象上的键是否存在 五.泛型参数默认类型 六.泛型条件类型 七.泛型工具类型 ...

  4. [LINUX] Arch Linux 硬盘拷贝式装系统+新增 home 分区

    目录 前言 1. 实操 1.1 整个磁盘拷贝 1.2 创建 home 分区 1.3 修改 fstab 实现自动挂载 2. 涉及到的知识点 2.1 fstab 2.2 dd 命令 2.3 fdisk 命 ...

  5. HttpClient用法--这一篇全了解(内含例子)

    HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性,它不仅使客户端发送Http请求变得容易,而且也方便开发人员测试接口(基于Http协议的),提高了开发的效率,也 ...

  6. Python科普系列——类与方法(上篇)

    欢迎来到新的系列,up又开新坑了~~ 实际上,Python作为一门易用性见长的语言,看上去简单,却仍然有很多值得一说的内容,因此这个系列会把Python中比较有意思的地方也给科普一遍.而另一方面,关于 ...

  7. 菜鸡的Java笔记 第三十 - java 异常的捕获及处理

    异常的捕获及处理        1.异常的产生分析以及所带来的影响        2.异常的处理的基本格式        3.异常的处理流程        4.异常的处理模式        5.自定义 ...

  8. 统计学习2:线性可分支持向量机(Scipy实现)

    1. 模型 1.1 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned ...

  9. 【GWAS】如何计算显著关联位点的表型解释率PVE(phenotypic variation explained)?

    我已经通过Gemma得到了关联分析的结果,如下. prefix.log.txt 中包含了一个总的PVE,这不是我们想要的. 那么,如何计算这些位点的表型解释率? 据了解,有些关联分析软件是可以同时得到 ...

  10. 【R】一对一变为一对多:将列折叠/连接/聚合为每个组(一行)内的字符串?

    目录 需求 实现 方法一 其他方法 data.table dplyr aggregate sqldf 延申:不用逗号分隔 需求 原始文件: data <- data.frame(A = c(re ...