藍橋杯——2019年C++A組第1題:平方和【枚舉】

一、題目

        小明對數位中含有 2、0、1、9 的數字很感興趣,在 1 到 40 中這樣的數包括 1、2、9、10 至 32、39 和 40,共 28 個,他們的和是 574,平方和是 14362。注意,平方和是指將每個數分別平方後求和。   

        請問,在 1 到 2019 中,所有這樣的數的平方和是多少?

        這是一道結果填空的題,你只需要算出結果後提交即可。本題的結果爲一 個整數,在提交答案時只填寫這個整數,填寫多餘的內容將無法得分。

        提示:如果你編寫程序計算,發現結果是負的,請仔細檢查自己的程序, 不要懷疑考場的編程軟件。

二、思路

編寫一個函數查看1-2019中每個數字每個數位是否有2,0,1,9四個數字,如果有,記錄這個數字。最後求出平方和。

注意要用long long,用int會越界。

三、題解

#include <iostream>
using namespace std;
bool check(long long n)
{
    while(n)
    {
        int t= n%10;
        if(t==2 || t==0 || t==1 || t==9)
        {
            return true;
        }
        n=n/10;
    }
    return false;
}

int main() {
    long long  ans=0;
    for (long long  i=1;i<=2019;i++)
    {
        if(check(i))
        {
            ans=ans+i*i;
        }
    }
    cout << ans << endl;
    return 0;
}

 

四、結果

2658417853

Process finished with exit code 0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章