蓝桥杯赛前冲刺30天打卡题解(Day3)

本文分别探讨了两个编程问题的解决方法。第一个问题是通过遍历年份寻找在2014年时,年份数字之和等于实际年龄的出生年份。第二个问题涉及全排列,寻找可以构成等边三角形的数字组合。通过C++代码实现,利用next_permutation函数进行全排列检查。这两个问题都展示了编程中的逻辑思维和数学应用。
摘要由CSDN通过智能技术生成

1.年龄巧合

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明和他的表弟一起去看电影,有人问他们的年龄。小明说:今年是我们的幸运年啊。我出生年份的四位数字加起来刚好是我的年龄。表弟的也是如此。已知今年是 20142014 年,并且,小明说的年龄指的是周岁。

请推断并填写出小明的出生年份。

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

解析:

本题其实就是让你求2014年减去n年后,那一年的年份各个数字之和等于n,所以直接上代码

#include <iostream>
using namespace std;
int main()
{
  for(int i=1900;i<=2014;i++){
    for(int j=i+1;j<=2014;j++){
       int a=2014-i;
       int b=2014-j;
       int c=i;
       int d=j;
       int sum1=0,sum2=0;
       while(c){
         sum1+=c%10;
         c=c/10;
       }
       while(d){
         sum2+=d%10;
         d=d/10;
       }
       if(a==sum1&&b==sum2){
         cout<<i;
         return 0;
       }
    }
  }
  return 0;
}

 2.纸牌三角形

将每个数进行全排列来组成边,这里我们使用C++ STL库中的 next_permutation来进行全排列,

关于next_permutation的用法这里简单说明下,

一般使用的格式为

int a[];
do
{

}
while(next_permutation(a,a+n));
大概就是do里面放判断的条件,符合条件就ans++;

next_permutation()是按照字典序产生排列的,并且是从数组中当前的字典序开始依次增大直至到最大字典序,且该函数的返回值为bool,排序不了时会返回false        

因为题目说考虑旋转和镜像后相同的算一种,旋转的情况有3种,镜像的情况有2种,所以最后的答案还需要除以2*3=6。
 

#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
  int a[9]={1,2,3,4,5,6,7,8,9};
  int count=0;
  do
  {
    int sum1=a[0]+a[1]+a[2]+a[3];
    int sum2=a[0]+a[4]+a[5]+a[6];
    int sum3=a[3]+a[6]+a[7]+a[8];
    if(sum1==sum2 && sum1==sum3)
    {
      count++;
    }
  }while(next_permutation(a,a+9));
  cout<<count/6;
  return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一可能的蓝桥杯赛前训练计划: 1. 熟悉考试内容和题型:了解蓝桥杯考试的内容和题型,包括编程语言、数据结构与算法、计算机基础知识和实践能力等方面的内容,并准备相关资料和练习题目。 2. 制定学习计划:根据自己的水平和时间安排,制定一具体的学习计划,包括每天的学习目标、练习时间和计划完成时间等,以保证充分利用时间进行学习和练习。 3. 提高编程能力:进行编程练习,提高编程能力,特别是数据结构和算法的实践能力。可以参在线编程竞赛、练习题目和刷题等方式来提高编程能力。 4. 提高计算机基础知识:学习计算机基础知识,包括计算机组成原理、操作系统、计算机网络、数据库等方面的知识,以提高程序的效率和优化能力。 5. 实践能力:进行实践练习,包括操作系统和网络配置、数据库设计和开发、Web开发等方面的实践,以提高实践能力和解决问题的能力。 6. 团队协作:参团队协作项目,锻炼团队合作和沟通能力,同时学习项目管理和软件开发流程等相关知识。 7. 模拟考试:进行模拟考试,以检验自己的学习成果和考试准备情况,同时找出自己的弱点和不足,以改进和提高。 8. 调整状态:保持良好的身体状态和心态,保证充足的睡眠和饮食,调整好心态,保持积极向上的心态。 以上是一可能的蓝桥杯赛前训练计划,具体的训练计划需要根据个人情况和水平来制定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小灰QAQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值