Ở đây, nhiệm vụ là in những số trong mảng có chứa chữ số 1, 2 và 3 trong số của chúng và nếu không có số nào như vậy thì đầu ra phải là -1.
Input : arr[] = {320,123,124,125,14532,126,340,123400,100032,13,32,3123,1100}
Output : 123 3123 14532 100032 123400
Vì mảng có giá trị với chữ số 1, 2 và 3 nó không trả về -1 và in 5 giá trị chứa 1, 2 và 3 trong số của chúng.Thuật toán
START
Step 1 -> Khai báo mảng với các phần tử kiểu int là arr
Step 2 -> lưu kích thước mảng vào int n
Step 3 -> khai báo biến int one, two, three
Step 4 -> gọi hàm sort với tham số arr và arr+n
Step 5 -> khai báo biến kiểu ostringstream là st và string là num
Step 6 -> Vòng lặp For i=0 and i<n and ++i
Set one=two=three=1
Print arr[i]
Set num=st.str()
Set one=num.find("1")
Set two=num.find("2")
Set three=num.find("3")
IF((one!=-1)&&(two!=-1)&&(three!=-1))
Print num
End
Call st.str('')
end
STOPVí dụ
#include <bits/stdc++.h>
#include<string.h>
#include<sstream>
using namespace std;
int main() {
int arr[] = {320,123,124,125,14532,126,340,123400,100032,13,32,3123,1100};
int n = sizeof(arr)/sizeof(arr[0]);
int one,two,three;
sort(arr, arr+n);
ostringstream st;
string num;
for (int i = 0; i < n; ++i) {
one=two=three=-1;
st << arr[i];
num=st.str();
one=num.find("1");
two=num.find("2");
three=num.find("3");
if((one!=-1)&&(two!=-1)&&(three!=-1)) {
cout<<num<<" ";
}
st.str("");
}
}Kết quả
Nếu chúng ta chạy chương trình trên thì nó sẽ tạo ra đầu ra sau
123 3123 14532 100032 123400