藍橋---平方十位數(shù)

由0~9這10個數(shù)字不重復(fù)、不遺漏,可以組成很多10位數(shù)字。
這其中也有很多恰好是平方數(shù)(是某個數(shù)的平方)。

比如:1026753849,就是其中最小的一個平方數(shù)。

請你找出其中最大的一個平方數(shù)是多少?

注意:你需要提交的是一個10位數(shù)字,不要填寫任何多余內(nèi)容。

思路1:
1.枚舉答案 X[9876543210,1026753849]
2.判斷是不是恰好0-9十個數(shù)字
3.判斷是不是完全平方數(shù)
令Y=int(sqrt(X))
判斷 Y*Y==X;

缺點:時間復(fù)雜度10^10,超時

思路2:
換種枚舉方式
1.枚舉X的開平方跟Y[100000,32043],相當于對區(qū)間的兩個端值開了平方根
2.運用set容器,來判斷所枚舉的x是否是不重復(fù)的10為數(shù)字

codes:
#include<iostream>
#include<set>
using namespace std;
//該函數(shù)求解的結(jié)果位數(shù)是否為10位
bool contain(long long n)
{
    if(n == 0)
        return false;
    set<long long> s;
    
    while(n)
    {
        long long m = n % 10;
        s.insert(m);
        n /= 10;
    }
    
    return s.size() == 10;//檢查是否為不重復(fù)的十位數(shù)字 
}
int main()
{
    
    for(long long i = 32043; i <= 100000; i++){//縮小范圍 
        long long x = i * i;//求平方 
        if(contain(x)){
            cout << x << endl;//輸出結(jié)果 
        }
    }
    
    return 0;
}

You can leave me a message if you find out anything incorrect in my diary, I'll correct it, thanks.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,115評論 2 9
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,235評論 0 38
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,996評論 0 2
  • 自從上次生病發(fā)燒,我就給寶兒斷奶了。實在不想跟孕期一樣,光憑著意志熬過漫漫病程。 給她徹底斷奶的過程,很輕松。我甚...
    清羽淺陌閱讀 1,059評論 0 3
  • 過去的浮云不覺從故鄉(xiāng)飄來 今天的花朵悄悄在枝上盛開 未來的果實將會讓時間灌脹 遺漏的歲月或許隨北風凋落 所有那些路...
    答案在風中飛揚閱讀 116評論 1 3

友情鏈接更多精彩內(nèi)容