1023組の最小数——C/C++実現
1413 ワード
タイトル
1023組の最小数(20点)
0~9の数字をいくつかずつ指定します.これらの数字を任意の順序で並べることができますが、すべて使用する必要があります.目標は最後に得られた数をできるだけ小さくすること(注意0はトップにならない).たとえば、2つの0、2つの1、3つの5、1つの8が与えられ、私たちが得た最小数は10015558です.
与えられた数字は、プログラムを作成して構成できる最小の数を出力してください.
入力形式:
入力は1行に10個の非負の整数を与え、順序は私たちが0、数字1、......数字9の個数を持っていることを示す.整数間はスペースで区切られます.10個の数字の合計数は50を超えず、少なくとも1個の0以外の数字を有する.
出力フォーマット:
構成可能な最小の数を1行に出力します.
サンプルを入力:
出力サンプル:
アルゴリズム#アルゴリズム#
シーケンス入力なので、どの数字かを配列の下でマークすることができ、ゼロでない最小数字を出力し、その個数を1つ減らして、出力配列ごとにゼロでないものを出力するだけです.コード2を参照.
コード1はまた配列ストレージを再開し,全く必要としない.
コード#コード#
1、C
2、C++
1023組の最小数(20点)
0~9の数字をいくつかずつ指定します.これらの数字を任意の順序で並べることができますが、すべて使用する必要があります.目標は最後に得られた数をできるだけ小さくすること(注意0はトップにならない).たとえば、2つの0、2つの1、3つの5、1つの8が与えられ、私たちが得た最小数は10015558です.
与えられた数字は、プログラムを作成して構成できる最小の数を出力してください.
入力形式:
入力は1行に10個の非負の整数を与え、順序は私たちが0、数字1、......数字9の個数を持っていることを示す.整数間はスペースで区切られます.10個の数字の合計数は50を超えず、少なくとも1個の0以外の数字を有する.
出力フォーマット:
構成可能な最小の数を1行に出力します.
サンプルを入力:
2 2 0 0 0 3 0 0 1 0
出力サンプル:
10015558
アルゴリズム#アルゴリズム#
シーケンス入力なので、どの数字かを配列の下でマークすることができ、ゼロでない最小数字を出力し、その個数を1つ減らして、出力配列ごとにゼロでないものを出力するだけです.コード2を参照.
コード1はまた配列ストレージを再開し,全く必要としない.
コード#コード#
1、C
//PAT1023V1
#include
int main(){
int a[10],b[50]={0},i,j=0,k=1,n,m=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
// for(i=0;i<10;i++)
// printf("%d ",a[i]);
for(i=0;i<10;i++){
if(i!=0&&a[i]!=0){
n=a[i]; // n
break;
}
}
b[0]=i;
a[i]=a[i]-1;
for(i=0;i<10;i++){
while(a[i]!=0){
b[k++]=i;
a[i]--;
}
}
for(i=0;i
2、C++
//1-23
#include
using namespace std;
int main(){
int a[10]={0},i,f;
for(i=0;i<10;i++) cin>>a[i];
for(i=0;i<10;i++){//
if(a[i]!=0&&i!=0){
cout<