题目如下:

这道题经过好久的思考也没找到能一次性输入两组数的方法,只能一次性处理一组数,所以就把代码放上来,欢迎交流留言一起讨论可以放两组数的方法~(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. 王爽汇编第十章,call和ret指令

    目录 王爽汇编第十章,call和ret指令 call和ret指令概述: ret和retf ret指令 retf指令 call 和 ret 的配合使用 call指令详解 call原理 call指令所有写 ...

  2. Delphi的手机程序隐藏顶部信号栏

    把TForm的BorderStyle设置为None 记之!

  3. 【python+postman接口自动化测试】(1)网络基础知识

    一.IP地址 就像每个人都有一个身份证号码 IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址. 查看IP命令: Windows: ipconfig Li ...

  4. NOIP模拟96(多校29)

    T1 子集和 解题思路 大概是一个退背包的大白板,然而我考场上想复杂了,竟然还用到了组合数. 但是大概意思是一样的,有数的最小值一定是一个在 \(a\) 数组中存在的数字. 那么我们想办法除去它对应的 ...

  5. Python 常见运算符表达式

    常见运算符表达式    1.算数运算符    2.逻辑运算符    3.比较运算符    4.成员运算符    5.位运算符    6.身份运算符a.赋值运算符 =    格式:变量= 表达式     ...

  6. Java是“值传递”还是“引用传递”?

    本文是根据stackoverflow网站上的一道题目整理出来的. Java一直是"值传递"而不是引用传递.看一个例子: public class Main{ public stat ...

  7. [hdu6978]New Equipments II

    显然可以费用流来做,具体建图如下-- 点集:源点,汇点,左边$n$​个工人,右边$n$​​​个设备 边集:源点向第$i$​个工人连$(1,a_{i})$​的边,第$i$​个设备向汇点连$(1,b_{i ...

  8. Spring Boot的前世今生以及它和Spring Cloud的关系详解。

    要了解Spring Boot的发展背景,还得从2004年Spring Framework1.0版本发布开始说起,不过大家都是从开始学习Java就使用Spring Framework了,所以就不做过多展 ...

  9. 【Mysql】三大日志 redo log、bin log、undo log

    @ 目录 redo log(物理日志\重做日志) binlog(逻辑日志/归档日志) update语句执行流程 Uodolog(回滚日志/重做日志) undo log+redo log保证持久性 re ...

  10. Python学习手册(第四版)——使用入门(自学用)

    Python的优点 -可读性 -可移植性 -不是一个独立的工具,可以调用各种库,同时也可以被调用等等 -使编程变得很有趣 -面向对象 -可混合 Python的理念 随便找的一张图 脚本语言? Pyth ...