题解
【入门】n个一位数能够组成的最小数
3 条题解
-
0
#include <iostream> #include <algorithm> // 用于排序 using namespace std; int main() { int n; cin >> n; int a[10]; // 假设 n 最大为 9 for (int i = 0; i < n; i++) { cin >> a[i]; } // 从小到大排序 sort(a, a + n); // 如果首位是0,找到第一个非零数并交换 if (a[0] == 0) { for (int i = 1; i < n; i++) { if (a[i] != 0) { swap(a[0], a[i]); break; } } } // 输出结果 for (int i = 0; i < n; i++) { cout << a[i]; } cout << endl; return 0; } -
0
#include <iostream> #include <algorithm> // 用于排序 using namespace std; int main() { int n; cin >> n; int a[10]; // 假设 n 最大为 9 for (int i = 0; i < n; i++) { cin >> a[i]; } // 从小到大排序 sort(a, a + n); // 如果首位是0,找到第一个非零数并交换 if (a[0] == 0) { for (int i = 1; i < n; i++) { if (a[i] != 0) { swap(a[0], a[i]); break; } } } // 输出结果 for (int i = 0; i < n; i++) { cout << a[i]; } cout << endl; return 0; } -
0
#include<bits/stdc++.h> using namespace std; int main(){ //组成真正的整数,当前数*数量级 int n,a[15]; cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1);//从小到大排序 if(a[1]==0){//第一个是0,需要交换 for(int i=2;i<=n;i++){ if(a[i]!=0){//找第一个不是0的数 swap(a[1],a[i]);//交换函数 break;//只交换一次 } } } for(int i=1;i<=n;i++){ cout<<a[i]; } //去掉0的情况 //int t=1; // for(int i=n;i>=1;i--){ // s+=a[i]*t;//每次都乘数量级 // t*=10;//进入下一个数量级 // } return 0; }
- 1