基础知识
数据结构的两大结构以及算法的5个特性。
codeforces
题目:C.UniqueNumber(https://codeforces.com/problemset/problem/1462/C)
分析:
要想数越小,则低位的数字应该越大。也就是说从个位开始填数字的话,应该按照 9,8,7,…,1的次序,一直填到各位数值等于所给数值为止。那如果把 1至9都填满,通过累加,我们得到的最大数值为 45。因此,完成代码时,我们首先判断所给数是否大于45,如果大于45,则直接输出 -1。
代码:
#include<bits/stdc++.h>
using namespace std;
int a[55];
int main()
{
int t;
cin>>t;
while(t--){
int x;
cin>>x;
int k=0,j=9;
if(x>45)
cout<<"-1"<<endl;
else{
while(x>j){
a[++k]=j;
x-=j;
j--;
}
a[++k]=x;
for(int i=k;i>0;i--)
cout<<a[i];
cout<<endl;
}
}
return 0;
}