商务网站规划与网页制作,网站网站怎么优化关键词排名,信誉好的中山网站建设,北京营销型网站建设多少钱问题描述#xff1a; 数学家们发现了两种用于召唤强大的数学精灵的仪式#xff0c;这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和#xff0c;即#xff1a;A(n)12⋯n累乘法仪式 B(n) 则是将从 1 到 n 的所… 问题描述 数学家们发现了两种用于召唤强大的数学精灵的仪式这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和即A(n)12⋯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