Cho số nguyên dương n có không quá 100 chữ số. Hãy xác định số nguyên lớn nhất m chia hết cho 3 và khác n ở đúng một chữ số. Ví dụ, n= 123 thì m sẽ là 723. Dữ liệu: Vào từ file văn bản NEWNUM.INP gồm một dòng chứa số nguyên n có không quá 100 chữ số và không chứa các số 0 không có nghĩa. Kết quả: Đưa ra file văn bản NEWNUM.OUT số nguyên m tìm được. Vi dụ: NEWNUM.INP 123 NEWNUM.OUT 723
1 câu trả lời
#include <iostream>
using namespace std;
int main()
{
int n,lon;
cin>>n;
if(n<10&&n>=0){
lon=9;
}
else if(n<100&&n>=10){
for(int i=10;i<(9-(n/10))*10;i+=10){
if((n+i)%3==0&&(n+i)>lon){
lon=n+i;
}
}
for(int j=1;j<9-(n%10);j++){
if((n+j)%3==0&&(n+j)>lon){
lon=n+j;
}
}
}
else if(n<1000&&n>=100){
for(int i=100;i<(9-(n/100))*100;i+=100){
if((n+i)%3==0&&(n+i)>lon){
lon=n+i;
}
}
for(int i=10;i<(9-(n/10))*10;i+=10){
if((n+i)%3==0&&(n+i)>lon){
lon=n+i;
}
}
for(int j=1;j<9-(n%10);j++){
if((n+j)%3==0&&(n+j)>lon){
lon=n+j;
}
}
}
cout<<lon;
//samon247
return 0;
}