网站开发 验收模板,wordpress调用数据库连接,做广告推广哪个平台好,学网络工程好找工作吗3318#xff1a;练54.1 6084问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 419 通过数: 300
从这里进入题目#xff1a;信息学奥赛一本通-编程启蒙#xff08;C版#xff09;在线评测系统
【题目描述】 任意给出一个四位数#xff0c;把它重新组成一个…3318练54.1 6084问题 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 419 通过数: 300
从这里进入题目信息学奥赛一本通-编程启蒙C版在线评测系统
【题目描述】 任意给出一个四位数把它重新组成一个四位的最大数和一个最小数算出两者间的差。 例如37213721 这个数可以重组成73217321 和 12371237差值为 7321−12377321−1237。 【输入】 一个四位数。 【输出】 题目中所说的差值。 【输入样例】
3721
【输出样例】
6084 思路
我想到了一种巧妙的思路
我们首先定义一下long long ls;
这里ls存储的就是输入的数字
我们可以确定ls是四位数所以我们可以把ls的每一位分离开来用数组存储 long long a[5];a[1]ls/1000;a[2]ls/100%10;a[3]ls/10%10;a[4]ls%10;
这里注意了重点来了
我们已经将四个位置上的数存在了数组里那我们现在只需要对数组里的四个数进行排序从小到大然后定义一个变量mi然后mia[1]*1000a[2]*100a[3]*10a[4]mi也就是ls能组成的最小的数字这样我们就能得到最小的数字最大的数字也可以用类似的方法得出来
那我们怎么排序呢
不懂的看这里sort排序-CSDN博客
如果你知道排序这道题应该很简单吧 代码
#includebits/stdc.h
using namespace std;
bool cmp(long long a,long long b){return ab;
}
int main(){long long ls;cinls;long long a[5];a[1]ls/1000;a[2]ls/100%10;a[3]ls/10%10;a[4]ls%10;sort(a1,a5);long long mia[1]*1000a[2]*100a[3]*10a[4];sort(a1,a5,cmp);long long maa[1]*1000a[2]*100a[3]*10a[4];ma-mi;coutma;return 0;
}