博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五题(打完自闭)
阅读量:20612 次
发布时间:2019-12-03

本文共 1801 字,大约阅读时间需要 6 分钟。

排序

输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

Input

输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。

Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
Sample Input
0051231232050775
Sample Output
0 77 12312320
问题分析:输入一串数字,把5当空格进行分割得到若干个数,把这些数由小到大输出,每两个数之间有一个空格
程序分析:先用char数组记录输入的数字,然后去5,分割数字,用另一个二维char型数组记录每一个分割得到的数,接下来对每一个数去开头的0,然后把每一个char型数字串转化为int型数,最后对其得到的数进行排列、输出。
其实可以省一些步骤的,当分割完数字得到一个二维char型数组的时候就可以把char型转化为int型,这样可以省略去0的步骤,不过打完代码才想到这个办法。
#include
#include
#include
#include
using namespace std;
int main()
{
char a[1010];
while (cin >> a)
{
char b[505][1010];
int i = 0, i1 = 0, i2 = 0,p=0;
while (a[i])
{
if (a[i] != ‘5’)
b[i1][i2] = a[i], i2++,p=2;
else
{
p–;
}
if(p1&&a[i]‘5’)
{
b[i1][i2] = 0, i1++, i2 = 0;
}
i++;
}
if (a[i - 1] == ‘5’)
i1–;
int mm[505];
for (int i2 = 0;i2 <= i1;i2++)
{
mm[i2] = strlen(b[i2]);
}
int i4 = 0, i5 = 0, i6 = 0, i11 = 0, i12 = 0;
for (;i4 <= i1;i4++)
{
i5 = 0;
if (b[i4][0] == ‘0’)
{
i12++;
while (b[i4][i5])
{
b[i4][i5] = b[i4][i5 + 1];
i5++;
}
b[i4][i5] = 0;
}
if (i12 == mm[i4])
{
b[i4][0] = ‘0’;
i12 = 0;
}
else if (b[i4][0] == ‘0’)
i4–;
else i12 = 0;
}
for (int i2 = 0;i2 <= i1;i2++)
{
int i7 = 0;
while (b[i2][i7])
{
i7++;
}
}
int c[505];
for (int i = 0;i <= i1;i++)
{
int e[1010];
c[i] = 0;
for (int ii = 0;ii < strlen(b[i]);ii++)
{
for (int iii = ‘0’, iiii = 0;iii < ‘10’;iii++, iiii++)
{
if (b[i][ii] == iii)
e[ii] = iiii;
}
c[i] += e[ii] * pow(10, strlen(b[i]) - ii - 1);
}
}
for (int i = 0;i <= i1;i++)
{
int r = i, s;
for (int ii = i;ii <= i1;ii++)
{
if (c[r] > c[ii])
{
r = ii;
}
}
s = c[r];
c[r] = c[i];
c[i] = s;
}
for (int i = 0;i < i1;i++)
cout << c[i] << " ";
cout << c[i1];
cout << endl;
}
}

转载地址:http://xgevfk.baihongyu.com/

你可能感兴趣的文章
visual studio调试内存泄漏工具
查看>>
开源Faac实现PCM编码AAC
查看>>
Windows下wave API 音频采集
查看>>
借船过河:一个据说能看穿你的人性和欲望的心理测试
查看>>
AndroidStudio 导入三方库使用
查看>>
Ubuntu解决gcc编译报错/usr/bin/ld: cannot find -lstdc++
查看>>
解决Ubuntu14.04 - 16.10版本 cheese摄像头灯亮却黑屏问题
查看>>
解决Ubuntu 64bit下使用交叉编译链提示error while loading shared libraries: libz.so.1
查看>>
Android Studio color和font设置
查看>>
Python 格式化打印json数据(展开状态)
查看>>
Centos7 安装curl(openssl)和libxml2
查看>>
Centos7 离线安装RabbitMQ,并配置集群
查看>>
Centos7 or Other Linux RPM包查询下载
查看>>
运行springboot项目出现:Type javax.xml.bind.JAXBContext not present
查看>>
Java中多线程向mysql插入同一条数据冲突问题
查看>>
Idea Maven项目使用jar包,添加到本地库使用
查看>>
FastDFS集群架构配置搭建(转载)
查看>>
HTM+CSS实现立方体图片旋转展示效果
查看>>
FFmpeg 命令操作音视频
查看>>
问题:Opencv(3.1.0/3.4)找不到 /opencv2/gpu/gpu.hpp 问题
查看>>