第十届蓝桥杯省赛C/C++A组——试题A:平方和
程序员文章站
2022-06-26 13:29:01
...
试题A:平方和
首先描述一下自己参加本次比赛的心情,做出了前两道结果题,第三道结果题和第四道结果题都不是完全确定的,也做出了第1、2、3道编程题,但是第三道可能会超时,但是能过一个测试点算一个测试点,至于后两道以我现在的菜鸡实力还够不到,所以就被我放弃了,考场是真的冷,再加上自己的水平,呜呜呜……明年二战吧。
最后这次比赛打了个省三的成绩,还是感到了自己和真正大佬的差距,觉得自己还有很多的东西需要去学习,谨以此记录本次比赛的心情心得和收获,望诸君共勉之,希望来年的自己变得更强!
问题描述
小明对数位中含有 2、 0、 1、 9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、 2、 9、 10 至 32、 39 和 40,共 28 个,他们的和是 574,平方和是 14362。
注意,平方和是指将每个数分别平方后求和。
请问,在 1 到 2019 中,所有这样的数的平方和是多少?
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
提示:如果你编写程序计算,发现结果是负的,请仔细检查自己的程序,不要怀疑考场的编程软件。
思路:
这是一个四位数的枚举暴力题,毕竟**杯嘛,我的思路就是将他们的个位、十位、百位、千位提出来,判断他们是不是2、0、1、9四个数字的其中一个,是的话就将这个数的平方和加上来,最后输出。
答案:
2658417853
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,d;
unsigned long long sum=0;
for(int i=1;i<=2019;i++){
a=b=c=d=3;//初始化
a=i%10;//个位
if(i>10)
b=i/10%10;//十位
if(i>100)
c=i/100%10;//百位
if(i>1000)
d=i/1000;//千位
if(a==2||a==0||a==1||a==9||
b==2||b==0||b==1||b==9||
c==2||c==0||c==1||c==9||
d==2||d==0||d==1||d==9){
sum+=i*i;
}
}
cout<<sum<<endl;
}
上一篇: 分享微博,QQ空间