当前位置: 首页 > news >正文

7. 拼数

1 题目描述

拼数

成绩10开启时间2021年09月24日 星期五 18:00
折扣0.8折扣时间2021年11月15日 星期一 00:00
允许迟交关闭时间2021年11月23日 星期二 00:00

设有 n个正整数 a[1]​…a[n]​,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。

输入描述

第一行有一个整数,表示数字个数 n (1 ≤ n ≤ 20, 1 ≤ a ≤ 10^9)。

第二行有 n个整数,表示给出的 n个整数 a[i]    

输出描述

一个正整数,表示最大的整数

接下来将由系统输出你的询问记录

当你的调用次数小于例程的2倍时,你将AC此题


预设代码

前置代码

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */  #include<iostream>  
#include<string>  using namespace std;  
string s[25];  
int n;  int* SpellNum(int );  int cmp(int i, int j) {  if(i <= 0 || i > n || j <= 0 || j > n)  return -2;  return s[i] + s[j] > s[j] + s[i];  
}  int main() {  cin >> n;  for(int i = 1; i <= n; ++i)   cin >> s[i];  int* index = SpellNum(n);  for(int i = 1; i <= n; ++i)   cout << s[index[i]];  cout << endl;  return 0;  
}  /* PRESET CODE END - NEVER TOUCH CODE ABOVE */  
 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 3↵
  2. 13 312 343↵
以文本方式显示
  1. 34331213↵
  2. 3↵
1秒64M0
测试用例 2以文本方式显示
  1. 4↵
  2. 7 13 4 246↵
以文本方式显示
  1. 7424613↵
  2. 6↵
1秒64M0

2 代码

#include<iostream>  
#include<string>  using namespace std;  
string s[25];  
int n;  int* SpellNum(int );  int cmp(int i, int j) {  if(i <= 0 || i > n || j <= 0 || j > n)  return -2;  // 成立返回1,不成立返回0return s[i] + s[j] > s[j] + s[i];  
}  int main() {  freopen("file in.txt","r",stdin);cin >> n;  for(int i = 1; i <= n; ++i)   cin >> s[i];  int* index = SpellNum(n);  for(int i = 1; i <= n; ++i)   cout << s[index[i]];  cout << endl;  return 0;  
}  // 方法就是把数字做为字符串来排序,排序的比较原则是: 两个数字串A,B,如果AB < BA,则A < B
// 不让访问原数组,那就新建一个数组把原数组的下标保存下来,对原数组的下标进行操作
int *SpellNum(int n){int *index;index = (int*)malloc(sizeof(int)*(n+1)); //下标0的那一位没有使用,所以多申请一个位置	int i,j;int temp;int ans;for(i=1;i<=n;i++){index[i]=i;}for(i=1;i<n;i++){for(j=i+1;j<=n;j++){ans = cmp(index[i],index[j]);if(ans==-2){exit;}else if(ans){// 如果大于的话,不做任何操作}else{// 如果小于的话,交换位置temp = index[i];index[i]=index[j];index[j]=temp;}		}}return index;
}
http://www.lryc.cn/news/30929.html

相关文章:

  • Java每天15道面试题 | Redis
  • 13_pinctrl子系统
  • Linux系统对于实施人员的价值
  • ForkJoin 和 Stream并行流
  • 逻辑优化-cofactor
  • 车道线检测CondLaneNet论文和源码解读
  • vue3的插槽slots
  • docker学校服务器管理
  • pv和pvc
  • k8s篇之Pod 干预与 PDB
  • Django学习17 -- ManytoManyField
  • 既然有MySQL了,为什么还要有Redis?
  • RSTP基础要点(上)
  • Linux操作系统学习(信号处理)
  • CopyOnWriteArrayList 源码解读
  • 方法
  • C/C++实现发送邮件功能(附源码)
  • Java虚拟机JVM-运行时数据区域说明
  • 修复电子管
  • 【Java】反射机制和代理机制
  • synchronized底层
  • 数据结构:复杂度的练习(笔记)
  • JAVA练习69- 从前序与中序遍历序列构造二叉树
  • brew安装问题
  • 【数据挖掘与商务智能决策】第一章 数据分析与三重工具
  • 计算机底层:BDC码
  • 【C++】平衡二叉搜索(AVL)树的模拟实现
  • [2019红帽杯]childRE
  • 2D图像处理:九点标定_下(机械手轴线与法兰轴线不重合)(附源码)
  • 【二分查找】分巧克力、机器人跳跃、数的范围