首页 > 其他分享 >天梯赛L1-027 出租

天梯赛L1-027 出租

时间:2023-04-12 19:23:48浏览次数:46  
标签:arr set 数组 int 天梯 ++ 027 电话号码 L1

一、问题描述

下面是新浪微博上曾经很火的一张图:

一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1index[1]=0 对应 arr[0]=8index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100

本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。

输入格式:

输入在一行中给出一个由11位数字组成的手机号码。

输出格式:

为输入的号码生成代码的前两行,其中arr中的数字必须按递减顺序给出。

输入样例:

18013820100
 

输出样例:

int[] arr = new int[]{8,3,2,1,0};
int[] index = new int[]{3,0,4,3,1,0,2,4,3,4,4};

二、设计思路

(1)输入一个完整的电话号码;

(2)将电话号码的每个数字读取出来并放到一个数组a中;

(3)利用set容器可以对元素自动排序并且不会重复插入相同元素的属性,统计出来电话号码中出现的每个数字;

(4)根据题目,需要得到电话号码中每个数字在数组a中的下角标;

(5)利用for循环遍历电话号码,得到每个数字在数组a中的下角标,并将其存放在数组b中,方便后续的输出;

(6)最后根据题目要求按照一定的格式输出数组a和数组b中的元素,完成题目要求;

三、程序流程图

 

 

 

四、伪代码实现

五、代码实现

 1 #include<iostream>
 2 using namespace std;
 3 #include <algorithm>
 4 #include<set>
 5 int main()
 6 {
 7     set<int,greater<int>>s1;
 8     string s;
 9     cin >> s;
10     for (int i = 0; i < s.length(); i++)
11     {
12         s1.insert(s[i] - '0');  //得到电话号码中的每个数并用set容器进行排序和删除重复数据
13     }
14     cout << "int[] arr = new int[]{";
15     int a[11] = { 0 };
16     int i = 0;
17     for (set<int>::iterator it = s1.begin(); it != s1.end(); ++it)
18     {
19         a[i] = (*it);      
20         i++;           //将set容器中的数据放到数组中,方便后面的结果输出
21     }
22     int b[11] = { 0 };
23     int l = 0;
24     for (int m = 0; m < 11; m++)
25     {
26         for (int k = 0; k < 11; k++)
27         {
28             if (a[k] == (s[m] - '0'))
29             {
30                 b[l] = k;          //遍历a数组,找出电话号码每个数在a数组中对应的下标,并将其存放在b数组中,方便以后的输出
31                 l++;
32                 break; //注意 不加break会崩溃!!!
33             }
34         }
35     }
36     for (int i = 0; i < s1.size()-1; i++)
37     {
38         cout << a[i] << ",";
39     }
40     cout << a[s1.size() - 1] << "};" << endl;   //按题目要求输出相应结果
41     cout << "int[] index = new int[]{";
42     for (int j = 0; j < 10; j++)
43     {
44         cout << b[j] << ",";
45     }
46     cout << b[10] << "};" << endl;
47     return 0;
48 }

 六、总结

(1)set容器会对插入的元素进行自动排序,默认是从小到大的排序;

(2)如果想改变默认排序,变为从大到小的排序方式,可以通过set<int,greater<int>>来实现;

(3)set容器不允许插入相同的元素,multiset容器允许插入相同的元素;

 

标签:arr,set,数组,int,天梯,++,027,电话号码,L1
From: https://www.cnblogs.com/lian369/p/17310629.html

相关文章

  • A537CL1化学成分、A537CL1执行标准、A537CL1力学性能
    一、A537CL1钢板简介:A537CL1钢板归属于钢板中的一大类,锅炉容器钢板之一。A537CL1钢板执行的是美国标准,所以也是美标的压力容器锅炉钢板。A537CL1钢板执行标准:执行ASTM标准(美标)。二、A537CL1钢板化学成分:CSiMnPSNiCrMoCuNbVTiAltB≤0.240.15~0.51~1.6≤0.025≤0.025≤0.25≤0.25≤0......
  • 天梯赛练习题 L3-008 喊山(bfs)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805050709229568输入样例:75412233145561457输出样例:2640#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAX......
  • 天梯赛练习题 L3-004 肿瘤诊断(bfs)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805052626026496输入样例:3452111111111111001100110011101101000000101100000000000100011000输出样例:26LLdz[]={1,-1,0,0,0,0},dx......
  • 【STL1】容器分类及测试
    //ConsoleApplication2.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。//#pragmawarning(disable:4996)#include<array>#include<ctime>#include<cstdlib>#include<iostream>#defineASIZE100000usingstd::cout;usingstd::cin;us......
  • L3-017 森森快递(天梯赛)
    https://pintia.cn/problem-sets/994805046380707840/exam/problems/994805047638999040大意是在一条直线上,有N个从0..N-1编号的城市,每个城市之间的道路有最大负载ai,现在有M张从i城到j城的运货订单,假设每个城市的货物无限,问在某一时刻,如何安排订单的运输,能使得运输的货物重......
  • L15_告诉别人自己想去的地方
    视频资料概述打车的时候,需要告诉司机去哪个地方时,可采用:地名+までお願いします的句式表达自己想要去某个地方,比如:くうこうまでお願いします想要去机场动画会话A:どちらまで您去哪儿?B:猿の温泉までお願いします麻烦你,去野猿温泉。A:はい、わかりました好......
  • Keil Error L121: Improper Fixup解决
    参考链接:ErrorL121:ImproperFixup(silabs.com)主要问题应该是程序太大,可以尽量缩小程序大小,实在不行的话改为Large即可。从小型2K改为大型64K,不再报错。 ......
  • 题目 1027: [编程入门]自定义函数处理最大公约数与最小公倍数
    题目描述写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。输入格式两个数输出格式最大公约数最小公倍数样例输入复制615样例输出复制330解题思路:欧几里得算法又称辗转相除法,用来求两......
  • [2020CCCC天梯赛] L3-1 那就别担心了(30分)
    [2020CCCC天梯赛]L3-1那就别担心了(30分)下图转自“英式没品笑话百科”的新浪微博——所以无论有没有遇到难题,其实都不用担心。博主将这种逻辑推演称为“逻辑自洽”,即从某个命题出发的所有推理路径都会将结论引导到同一个最终命题(开玩笑的,千万别以为这是真正的逻辑自洽的定义......
  • [2021CCCC天梯赛] L3-1 森森旅游(30分)
    [2021CCCC天梯赛]L3-1森森旅游(30分)题目描述好久没出去旅游啦!森森决定去Z省旅游一下。Z省有n座城市(从1到n编号)以及m条连接两座城市的有向旅行线路(例如自驾、长途汽车、火车、飞机、轮船等),每次经过一条旅行线路时都需要支付该线路的费用(但这个收费标准可能不止一种,......