神奇六位數

有一個6位的正整數,它有個很神奇的性質: 分別用2 3 4 5 6去乘它,得到的仍然是6位數,並且乘積中所包含的數字與這個6位數完全一樣!只不過是它們的順序重新排列了而已。 請計算出這個6位數。

這是一個整數,請通過瀏覽器提交答案,不要填寫任何多餘的內容(比如說明性的文字)
142857

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int f(int a){
    //cout << a << endl;
    vector<int> A;
    while(a != 0){
        A.push_back(a % 10);
        a /= 10;
    }
    sort(A.begin(), A.end());
    int num = 0;

    for(int i = 0; i < A.size(); i++){
        //cout << "A[" << i << "] = " << A[i] << endl;
        num *= 10;
        num += A[i];
    }

    return num;
}

int main(){
    int n, flag;

    for(int i = 100000; i <= 169999; i++){
        flag = 1;
        for(int j = 2; j <= 6 && flag; j++){
            n = i * j;
            int num1 = f(i);
            int num2 = f(n);
            //cout << num1 << " " << num2 << endl;
            if(num1 != num2) flag = 0;
            else{
                if(j == 6){
                    printf("%d\n", i);
                    return 0;
                }
            }
        }
    }

    return 0;
}

用字符串寫也可以
https://blog.csdn.net/qq_37614259/article/details/72354044

發佈了113 篇原創文章 · 獲贊 15 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章