蓝桥杯——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

发布了57 篇原创文章 · 获赞 9 · 访问量 3578

猜你喜欢

转载自blog.csdn.net/Jayphone17/article/details/104263573