题目背景
一个简单的数学题。。。
题目描述
输入一个数N(N<=200位),拆分,得出最小的和最大的数列。
如: 123求出最小的=123
123求出最大的=321
再求出它们的差。
如: 321-123=?
若不是数字,直接输出NO
输入输出格式
输入格式:
第一行:输入一个数N(N<=200位)
输出格式:
输出看【题目描述】
输入输出样例
输入样例#1:
123
输出样例#1:
321-123=198
输入样例#2:
10
输出样例#2:
10-01=9
输入样例#3:
撒反对威锋网
输出样例#3:
NO
说明
对于%30的数据=<30位
对于%60的数据=<60位
对于%100的数据=<200位
思路:
两遍排序,一遍减法,去掉前导0然后输出;
有一个点是最大排列等于最小排列,这时要输出一个0;
来,上代码:
#include#include #include #include using namespace std;int len,ans[300];char ch[300],ch_1[300],ch_2[300];bool cmp(char a,char b){ return a>b;}int main(){ cin>>ch; len=strlen(ch); for(int i=0;i '9'||ch[i]<'0') { cout<<"NO"<