YTU 2801: 用数字造数字(II)
2801: 用数字造数字(II)
时间限制: 1 Sec 内存限制: 128 MB
提交: 244 解决: 168
题目描述
输入一个3位以上的整数,求其中最大的两个数字之和与最小的数字之和之间的差。例如:输入8729,输出8,即(9+8)-(2+7)=8,再如,输入24825,输出9,即(8+5)-(2+2)=9。
输入
一个3位以上的整数
输出
最大的两个数字之和与最小的数字之和之间的差
样例输入
8729
样例输出
8
提示
将分离好的数字存储在数组中,再从数组中找出最大、次大值,以及最小、次小值。最坏的策略,将得到的数组排序后取头尾两个元素。
你 离 开 了 , 我 的 世 界 里 只 剩 下 雨 。 。 。
#include <stdio.h>
int main( )
{
int n,arr[15],m=0,i,ma1,ma2,mi1,mi2,t;
scanf("%d",&n);
while(n>0)
{
arr[m++]=n%10;
n/=10;
}
for(i=0; i<m-1; i++)
{
if(arr[i]>arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
for(i=0; i<m-2; i++)
{
if(arr[i]>arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
ma1=arr[m-1],ma2=arr[m-2];
for(i=0; i<m-1; i++)
{
if(arr[i]<arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
for(i=0; i<m-2; i++)
{
if(arr[i]<arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
mi1=arr[m-1],mi2=arr[m-2];
printf("%d",ma1+ma2-mi1-mi2);
return 0;
}
int main( )
{
int n,arr[15],m=0,i,ma1,ma2,mi1,mi2,t;
scanf("%d",&n);
while(n>0)
{
arr[m++]=n%10;
n/=10;
}
for(i=0; i<m-1; i++)
{
if(arr[i]>arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
for(i=0; i<m-2; i++)
{
if(arr[i]>arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
ma1=arr[m-1],ma2=arr[m-2];
for(i=0; i<m-1; i++)
{
if(arr[i]<arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
for(i=0; i<m-2; i++)
{
if(arr[i]<arr[i+1])
{
t=arr[i];
arr[i]=arr[i+1];
arr[i+1]=t;
}
}
mi1=arr[m-1],mi2=arr[m-2];
printf("%d",ma1+ma2-mi1-mi2);
return 0;
}
YTU 2801: 用数字造数字(II)的更多相关文章
- YTU 2782: 用数字造数字
2782: 用数字造数字 时间限制: 1 Sec 内存限制: 128 MB 提交: 191 解决: 160 题目描述 输入一个3位以上的整数,求其中最大的数字最小的数字之间的差.例如:输入8729 ...
- cell1这个字符串如何截取掉前边的cell剩下后边的数字 后边数字长度不固定
cell1这个字符串如何截取掉前边的cell剩下后边的数字 后边数字长度不固定'cell1'.replace(/cell/,'')string.substr(4)string.slice(4)
- C# 之 Excel 导入一列中既有汉字又有数字:数字可以正常导入,汉字导入为空
今天在做一个Excel导入功能,一切开发就绪,数据可以成功导入.导入后检查数据库发现有一列既有汉字又有数字,数字正常导入,汉字为空.但是前面同样既有汉字又有数字的列可以导入成功. 查看excel 源文 ...
- Java随机生成定长纯数字或数字字母混合数
(转)Java随机生成定长纯数字或数字字母混合数 运行效果图: 具体实现代码
- 设正整数n的十进制表示为n=ak……a1a0(0<=ai<=9,0<=i<=k,ak!=0),n的个位为起始数字的数字的正负交错之和T(n)=a0+a1+……+(-1)kak,证明:11|n的充分必要条件是11|T(n);(整除理论1.1.2))
设正整数n的十进制表示为n=ak……a1a0(0<=ai<=9,0<=i<=k,ak!=0),n的个位为起始数字的数字的正负交错之和T(n)=a0+a1+……+(-1)kak, ...
- is_numeric — 检测变量是否为数字或数字字符串
is_numeric — 检测变量是否为数字或数字字符串 bool is_numeric ( mixed $var ) 如果 var 是数字和数字字符串则返回 TRUE ,否则返回 FALSE . 参 ...
- PHP is_numeric 检测变量是否为数字或数字字符串
bool is_numeric ( mixed $var ) 如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE. For example 1: <?php $v = is_ ...
- HDU 4352 区间的有多少个数字满足数字的每一位上的数组成的最长递增子序列为K(数位DP+LIS)
题目:区间的有多少个数字满足数字的每一位上的数组成的最长递增子序列为K 思路:用dp[i][state][j]表示到第i位状态为state,最长上升序列的长度为k的方案数.那么只要模拟nlogn写法的 ...
- excel怎么把文本格式的数字转换为数字,且把前面的撇号去掉
excel把文本格式的数字转换为数字,且把前面的撇号去掉方法:1.选中要处理的列,在“数据”菜单下,选择“分列”.2.在“分列”向导对话框里,选择“分隔符号”,并点击下一步.3.在“分列”向导对话框第 ...
随机推荐
- Laya Tween循环
Laya Tween循环 @author ixenos 需求:做一个循环的缓动动画 方案: 1)如果只是线性变化,那么直接使用timer或者frameLoop来变化 2)如果需要有非线性变化,那么使用 ...
- [转]ORA-38500: USING CURRENT LOGFILE option not available without stand
标签: oracle 10g 数据库 ora-38500 it 分类: IT author:skate time :2009/08/03 在dataguard启用实时恢复的时候,报如下错误: ORA- ...
- 生产环境下lnmp的权限说明
https://www.cnblogs.com/zrp2013/p/4183546.html 有关权限说明:-rwxrw-r‐-1 root root 1213 Feb 2 09:39 50.html ...
- ACDream:1210:Chinese Girls' Amusement【水题】
Chinese Girls' Amusement Time Limit: 2000/1000MS (Java/Others)Memory Limit: 128000/64000KB (Java/Oth ...
- ***js常用方法汇总(源自实际中的项目)
Q: 400-819-0717转8888,取后四位分机号 A: 方法一: alert("abcdefg".slice(-4));方法二:var str= "abcdefg ...
- UVA 10245 The Closest Pair Problem【分治】
题目链接: http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=21269 题意: 求平面最近点对. 分析: 经典问题. n比 ...
- PAT (Advanced Level) 1032. Sharing (25)
简单题,不过数据中好像存在有环的链表...... #include<iostream> #include<cstring> #include<cmath> #inc ...
- Linux查看日志三种命令(转载)
第一种:查看实时变化的日志(比较吃内存) 最常用的: tail -f filename (默认最后10行,相当于增加参数 -n 10) Ctrl+c 是退出tail命令 其他情况: tail -n 2 ...
- Trac常用插件描述! - wang_xf的Study home - 博客频道 - CSDN.NET
Trac常用插件描述! - wang_xf的Study home - 博客频道 - CSDN.NET
- Knockout.js用jquery的val设置值不更新
用如下方法,加上change() .val("blah").change()