acm新手訓練題

2021-09-02 19:56:22 字數 786 閱讀 1040

問題描;述輸入一行數字,如果我們把這行數字中的『5』都看成空格,那麼就得到一行用空格分割的若干非負整數(可能有些整數以『0』開頭,這些頭部的『0』應該被忽略掉,除非這個整數就是由若干個『0』組成的,這時這個整數就是0)。

你的任務是:對這些分割得到的整數,依從小到大的順序排序輸出。

input

輸入包含多組測試用例,每組輸入資料只有一行數字(數字之間沒有空格),這行數字的長度不大於1000。

輸入資料保證:分割得到的非負整數不會大於100000000;輸入資料不可能全由『5』組成。

output

對於每個測試用例,輸出分割得到的整數排序的結果,相鄰的兩個整數之間用乙個空格分開,每組輸出佔一行。

問題分析:為了避免數字0放開頭會被忽略掉,所以將數字輸入變成輸入字串,再轉化為數字,也便於比較。由於形成新的乙個數字,所以用另乙個陣列來存放即可,存好後再用氣泡排序法排好。然後分別輸出即可。

解題:`#include"pch.h"

#include

using namespace std;

int main()

;int n = strlen§;

for (; i < n; i++)

if (d == 1 && c == 5)

}if (c != 5)

for (i = 0; i < j; i++)

}if (i < j - 1) cout << a[i] << " ";

else cout << a[i];

} cout << endl;

}return 0;

acm新手訓練題

問題描述 輸入三個字元後,按各字元的ascii碼從小到大的順序輸出這三個字元。輸入幾組字元進行測試。問題分析 將三個字元的ascll碼放入三個整型數中,然後同過三個整數的比較來實現字元的比較。解題步驟 開闢乙個字元空間 通過字元指標實現對字元的訪問,接著用while語句實現多組資料的輸入,在whil...

ACM訓練二E題

題意 給你乙個閉區間 a,b 求乙個最小的l,使得在區間 a,b l 1 內任取乙個數x,可以滿足在x,x 1,x 2,x l 2,x l 1內至少包含k個素數。1 a,b,k 10 6 考察內容 篩素數 二分 一邊篩素數,一邊處理出乙個字首和sum sum i 表示 1,i 中有多少素數 那麼我們...

acm新手刷題攻略之poj

ac的原始碼在這找原始碼 每做一題,就會把題目畫上橫槓,並附加解題思路和 近期內先刷codeforces的,準備比賽 圓周率acos 1.0 自然對數exp 1.0 oj上的一些水題 可用來練手和增加自信 poj3299 poj2159 poj2739 poj1083,poj2262 poj1503...