第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组题解+个人总结

提示:此题解为本人自己解决,如有差错请大家多多指正。

文章目录

  • 题解+总结
  • 一、幸运数
    • 1.试题
    • 2.解法
    • 3.代码
  • 二、[有奖问答](https://blog.csdn.net/A2105153335/article/details/130038980?spm=1001.2014.3001.5501)
  • 三、[平方差](https://blog.csdn.net/A2105153335/article/details/130041559?spm=1001.2014.3001.5501)
  • 总结


太菜了,太菜了,写个文章提醒我的菜,感觉受到了打击。自己还是菜,写的还不够多,一堆都忘了。dfs也不会写了。

题解+总结

一、幸运数

1.试题

第十四届蓝桥杯大赛软件赛省赛 C/C++ 大学 A 组题解+个人总结_第1张图片

2.解法

可以暴力求解,数位为两位时,有11,22,33,44,55,66,77,88,99共9个幸运数。然后分别枚举(1000-9999,100000-999999,10000000~99999999)然后加上幸运数的条件算出每个数段的幸运数个数来,加起来就是答案。(我暴力还写错了,真是太菜了!!!痛苦,今年大一爆0,明年省一等我!!!)

3.代码

不知道为啥代码在我的vs里报错,分开求是可以的。

#include
using namespace std;
int main()
{
 //数位为二:11,22,33,44,55,66,77,88,99:9种结果
  int a=0,b=0,c=0,d=9;
  for(int i=1000;i<=9999;i++)
  {
    if(i%10+i/10%10==i/100%10+i/1000%10)//个位+十位=百位+千位,下面依次类推
    a++;//数位为四:结果为615
  }cout<<a<<endl;
  for(int i=100000;i<=999999;i++)
  {
  if(i%10+i/10%10+i/100%10==i/1000%10+i/10000%10+i/100000%10)
     b++;
  }cout<<b<<endl;
  for(int i=10000000;i<=99999999;i++)
  {
  if(i%10+i/10%10+i/100%10+i/1000%10==i/10000%10+i/100000%10+i/1000000%10+i/10000000%10) 
  c++;
  }
  cout<<c<<endl;
  cout<<d+a+b+c;//9+615+50412+4379055=4430091
  return 0;
)

二、有奖问答

三、平方差

总结

本次蓝桥杯让我深刻意识到了我的菜,上学期也没咋学,这学期听了一点y总的课,知识点知道了不少,但就是转化不成代码,真的很痛苦。接下来继续学习算法和数据结构,多做题,同时学一些框架,不能太痴迷于算法题了不然可能会断了自己的路,看个人水平吧还是,对于我来说是这样,然后看看学校的ICPC队能不能进去,下周还有新生赛。。。。。。好羡慕厉害的学长和算法大佬们。。。。。。。。。。。。。。。。。。。。写完题解释然了,感觉前几道好简单还做错了。。。。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(蓝桥杯,蓝桥杯,c语言,c++)