Cho một số nguyên dương n, hãy thay đổi vị trí của các chữ số sao cho thu được một số lớn nhất chia hết cho 90.
Đầu vào
Một số nguyên dương n (n≤10^100000)
Đầu ra
Một số lớn nhất chia hết cho 90. Nếu không có đáp án thì in ra −1.
Ví dụ 1
Đầu vào
306
Đầu ra
630
Ý tưởng : một số muốn chia hết cho 90 thì số đó chia hết cho 9 và 10. Mà một số muốn chia hết cho 10 thì cần có chữ số 0 ở cuối dùng và muốn chia hết cho 9 thì tổng các chữ số chiaa hết cho 9 nên ta chỉ việc sắp xếp các chữ số từ lớn đến bé sau đó kiểm tra tổng có chia hết cho 9 không và chữ số cuối cùng có phải là 0 không (vì đã sắp xếp từ lớn đến bé). Vì bài nhập vào số rất lớn nên ta nhập vào kiểu string.
Code mẫu :
#include<bits/stdc++.h>
using namespace std;
string s;
long long t=0;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>s;
sort(s.begin(),s.end(),greater<char>());
for (int i=0;i<s.size();i++)
{
t+=(s[i]-48);
}
if (t%9!=0 || s[s.size()-1]!='0')
cout<<-1;
else
cout<<s;
}
________________________________________________
Hãy hiểu và làm lại chứ đừng chỉ lấy code!
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!
Copyright © 2021 HOCTAPSGK