2-16 HDO1106
这题寒假也没搞出来,但今天花了一小时终于搞定。
题意是输入一串数字字符,把‘5’当作空格,然后把被分割开的数字进行排序输出。
首先是字符串输入,按照高精度的处理方法,数值低位放到数组低位。(字符串型的S转到整形的A)
然后,开始对A数组遍历,将第i位的数值乘以10的i次方,累加到B数组(整形)。遇到5则continue,当然还要对累加时的变量进行重置。
上述的做法有两个点要特别注意到,如果A数组的最后一位不是5,而整个数组里5的数量不为0,则B数组的个数要加1,二是如果数组里5的数量为0,则B的个数也要加1。
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std; 7 8 int main() 9 { 10 char s[1005]; 11 int a[1050],b[300],i,j,slen,ilen,pos,top,dou,sum; 12 while(scanf("%s",s)!=EOF) 13 { 14 memset(b,0,sizeof(b)); 15 slen = strlen(s); 16 sum = 0; 17 for(i=slen-1,j=0; i>=0; i--) 18 { 19 a[j] = s[i] - '0'; 20 if(a[j] == 5) 21 sum ++; 22 j++; 23 } 24 if(a[0] == 5) 25 { 26 i = 1; 27 } 28 else 29 { 30 i = 0; 31 } 32 for(top=0,dou=1; i<slen; i++) 33 { 34 if(a[i]==5 && a[i-1] == 5) 35 continue; 36 if(a[i] == 5) 37 { 38 pos = i; 39 dou = 1; 40 top++; 41 continue; 42 } 43 else 44 { 45 b[top] += a[i]*dou; 46 dou*=10; 47 } 48 } 49 if(a[slen-1] != 5 && sum!=0) 50 top++; 51 if(sum == 0) 52 top++; 53 sort(b,b+top); 54 for(i=0; i<top-1; i++) 55 printf("%d ",b[i]); 56 printf("%d\n",b[top-1]); 57 } 58 return 0; 59 }
转载于:https://www.cnblogs.com/catdrivedragon/p/3551824.html
2-16 HDO1106相关推荐
- 实现手机来电铃声,通知铃声、警告铃声等音频定制化功能(三,多媒体扫描结果定制处理)
本篇博文主要是对MediaScanner中endFile方法的处理流程上的重构,以实现需求中的资源区域化定制.处理思路为首先扫描定制分区中的资源,在扫描系统分区下默认资源时判断定制分区西下是否已经存在 ...
- sqlserver错误码
错误 6,000 到 6,999 错误 严重性 是否记录事件 说明 6001 10 否 SHUTDOWN 正在等待 %d 个进程完成. 6004 10 否 用户没有执行此操作的权限. 6005 10 ...
- Go 1.16 的这个新变化需要适应下:go get 和 go install 的变化
原文地址: Go 1.16 的这个新变化需要适应下:go get 和 go install 的变化 一直以来,go get 用于下载并安装 Go 包.命令等,而 go install 在 module ...
- Ubuntu 16.04 安装后修改屏幕分辨率(xrandr: Failed to get size of gamma for output default)
ubuntu 16.04 安装后分辨率只有一个选项 1024x768,使用 xrandr 命令出现错误: xrandr: Failed to get size of gamma for output ...
- Ubuntu 16.04 安装 Docker - Dependency failed for Docker Application Container
Docker 安装 由于 apt 官方库里的 Docker 版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker ...
- java 16进制与图片互转
十六进制转成图片 /*** 十六进制转成图片* @author Administrator**/public static void saveToImgFile(String src,String o ...
- 【CV】吴恩达机器学习课程笔记第16章
本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片 机器学习 | Coursera 吴恩达机器学习系列课程_bilibili 目录 16 推荐系统 16-1 问题规划 16-2 基于内容的推 ...
- python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法
python 16进制转10 进制, 8进制转10进制, 2进制转10进制 可以使用系统自带的 int 方法 具体如下: value = "0x1388" result = int ...
- java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode
问题出现在在定义一些常量的时候 这个定义的数据不要超过16 ,这个问题就是定义超过了 16 , 用16进制的最好.
- Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in lib
今天导入饺子库提示 sdk 不能低于16的错误提示,导致build 失败 处理方法: 我把15 改成了16即可编译通过 这个是之前写的,目前各大应用平台要求最低是26了,
最新文章
- java writeboolean_Java DataOutputStream writeBoolean()方法(带示例)
- Java 之 内部类
- QT5主界面“关闭窗口”按钮设置弹出提示询问信息
- 小鱼的航程(改进版)(洛谷-P1424)
- mongodb MapReduce
- springboot Cacheable(redis),解决key乱码问题
- 多个值合并成一个字段oracle排序,Oracle之多行记录变一行记录,行变列,并排序(wmsys.wm_concat)...
- JMS学习(三)JMS 消息结构之属性及消息体详解
- 《因果推理原理:基础与学习算法》第一章 因果模型和统计模型
- 爬取人民日报_抓取人民日报
- 游戏手柄(JoyStick)的延时处理
- 关于物联网你需要知道的一切
- 01_机器人坐标系的说明
- app启动页面的问题
- 网站移动端APP渗透测试安全检测方案
- 延迟10us程序C语言,C语言之延时
- bat操作php文件内容,定时运行某个php文件的bat文件
- prusai3打印机使用教程_prusa i3 3D打印机固件Marlin配置初学者篇
- runit 学习笔记
- Gstreamer播放教程2: Subtitle management (字幕管理)
热门文章
- TX Text Control文字处理教程
- Win32基础知识5 - Win32汇编语言006
- 完美的代价 c语言,蓝桥杯基础练习 完美的代价
- MMDetection库部署和训练
- MapReduce基础开发之二数据去重和排序
- 配置文件加载优先级和外部配置文件加载||IDEA外部配置文件无法加载
- spring中的JdbcTemplate——JdbcTemplate的最基本用法
- Java的知识点21——String类、StringBuffer和StringBuilder、不可变和可变字符序列使用陷阱
- JavaScript中判断为整数的多种方式
- C# 学习笔记(18)操作SQL Server 中