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;
}

Câu hỏi trong lớp Xem thêm