当前位置: 首页 > news >正文

蓝桥杯 第十五届 研究生组 B题 召唤数学精灵

 问题描述:

        数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和,即:A(n)=1+2+⋯+n累乘法仪式 B(n) 则是将从 1 到 n 的所有数字进行累乘求积,即:B(n)=1×2×⋯×n据说,当某个数字 i 满足 A(i)−B(i) 能被 100 整除时,数学精灵就会被召唤出来。现在,请你寻找在 1 到 2024041331404202 之间有多少个数字 i,能够成功召唤出强大的数学精灵。

答案提交:

        这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

解题思路:

        由于查找的数过多,所以一定不是使用的for循环来解题,而是从中查找规律,所以先遍历前1000个数字,发现除前两个符合要求的数字,其余的数字%200都应该是0、24、175、199,所以可以直接计算出2024041331404202中一共有多少个200的组,并且判断2024041331404202%200的数字应该处于哪个区间(以0、24、175、199来划分区间),最终就可以得到可以召唤数学精灵的个数。

注意:

        ①可以召唤精灵的个数应该为long long类型,其超出了int型可以表示的范围;

        ②第一个200的组,其有5个符合要求的数字,所以最后应该要+1。

代码:

找规律代码:

//找规律
int A = 0, B = 1;    //记录A(i)%100和B(i)%100
cout << "i" << '\t' << "A" << '\t' << "B" << '\t' << "number" << endl;
for (int i = 1;i < 1000;i++)
{A = (A + i) % 100;B = (B * i) % 100;	if (A == B)   //为想要的i{number++;cout << i << '\t' << A << '\t' << B << '\t' << number << endl;}
}

规律输出: 

i       A       B       number
1       1       1       1
3       6       6       2
24      0       0       3
175     0       0       4
199     0       0       5
200     0       0       6
224     0       0       7
375     0       0       8
399     0       0       9
400     0       0       10
424     0       0       11
575     0       0       12
599     0       0       13
600     0       0       14
624     0       0       15
775     0       0       16
799     0       0       17
800     0       0       18
824     0       0       19
975     0       0       20
999     0       0       21

main函数:

#include <iostream>
using namespace std;
int main()
{请在此输入您的代码long long number = 0;    //记录i的个数number = 2024041331404202 / 200 * 4 + 1;    //可以被200整除的部分,其中+1是指前199个数中,有1、3、24、175、199五个符合要求的数字,比后面每200个多一个,所以要+1int left = 2024041331404202 % 200;if (left < 24){number++;}else if (left < 175){number += 2;}else if (left < 199){number += 3;}else{number += 4;}cout << number;return 0;
}

运行结果:

40480826628086
http://www.lryc.cn/news/517537.html

相关文章:

  • 在 Go 应用中 如何像 FastAPI 一样优雅地构建控制器
  • 用户界面的UML建模11
  • 历代iPhone运行内存大小和电池容量信息
  • 计算机网络之---物理层设备
  • 57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景
  • 第八讲 一元函数积分学的概念和性质
  • ADMM原理及应用
  • mysql之sql的优化方案(重点)
  • 【LeetCode】303. 区域和检索 - 数组不可变
  • 前端开发 vue 中如何实现 u-form 多个form表单同时校验
  • 【网络】什么是速率 (Rate)带宽 (Bandwidth)吞吐量 (Throughput)?
  • (leetcode算法题)769. 最多能完成排序的块
  • 高光谱相机的特点
  • 《Spring Framework实战》8:4.1.3.Bean 概述
  • BGP的local_preference本地优先级属性
  • IP地址与端口号
  • Fastapi + vue3 自动化测试平台(2)--日志中间件
  • iOS - AutoreleasePool
  • 1.CSS的复合选择器
  • 优质内容在个人IP运营中的重要性:以开源AI智能名片商城小程序为应用实例的深度探讨
  • Kafka性能测试
  • 解决Docker冲突问题
  • 新手入门 React .tsx 项目:从零到实战
  • 基于可信数据空间的企业数据要素与流通体系建设(附ppt 下载)
  • 二维数组:求最大元素及其所在的行坐标及列坐标(PTA)C语言
  • WebRtc01: 课程导学、框架介绍
  • HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构
  • 【cuda学习日记】2.2 使用2维网络(grid)和2维块(block)对矩阵进行求和
  • 深度学习中CUDA环境安装教程
  • IDEA的常用设置