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à

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

0 bình luận về “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à”

  1. #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;
    }

    Bình luận

Viết một bình luận