一、題目
小明對數位中含有 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