真题解析│蓝桥杯省赛真题之平方和

梁老师
梁老师 北京小升初老师~

0 人点赞了该文章 · 84 浏览






2019年蓝桥杯软件类省赛(软件类)C/C++大学A组第1题“平方和”。

*本文内容由倪文迪(华东理工大学计算机系软件192班)和罗勇军老师提供。


01

题目描述


填空题。


小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。


注意,平方和是指将每个数分别平方后求和。请问,在1 到2019 中,所有这样的数的平方和是多少?



02

Python代码


太好了,又是数字,用Python最方便了。


sum = 0
for i in range(1,2020):
    s = str(i)
    if '2' in s or '0' in s or '1' in s or '9' in s:
         sum += i*i
print(sum)


03

C++代码


C++还是循规蹈矩地编码吧。


#include<bits/stdc++.h>
using namespace std;
bool check(int n){
    while(n){
        if(n%10==1||n%10==2||n%10==9||n%10==0)
            return true;
        n/=10;
    }
    return false;
}
int main(){
    long long sum=0;
    for(int i=1;i<=2019;i++)
        if(check(i))
            sum+=i*i;
    cout<<sum;
}


04

Java代码


 Java也能像Python那样,就是代码太烦了点。


public class Main{
    public static void main(String[] args{
        long sum=0;
        for(int i=1;i<=2019;i++) {
            String s = String.valueOf(i);
            if(s.contains("2") || s.contains("0") || s.contains("1") || s.contains("9"))
                sum += i*i;
        }
        System.out.println(sum);
    }
}



图片


添加 家长论坛微信 



发布于 2024-04-26 15:07

免责声明:

本文由 梁老师 原创发布于 家长帮 ,著作权归作者所有。

登录一下,更多精彩内容等你发现,贡献精彩回答,参与评论互动

登录! 还没有账号?去注册

暂无评论

广告
All Rights Reserved Powered BY WeCenter V4.1.0 © 2025 京ICP备20005761号-2