暴力法
[15届蓝桥杯填空题秒出答案,就用这两招!帮你领先对手30分钟~_哔哩哔哩_bilibili]
(www.bilibili.com/video/BV12j…)
求阶乘和 可以用两个循环,相乘,相乘和给一个变量,再用一个变量累加相乘和
ll sub = 1;
ll sum = 0;
for (int i = 1; i < 40; i++) {
for (int j = 1; j < i; j++) {
sub = i * j;
}
sum += sub;
cout << sub << endl;
}
}
错了错了,是这样的:
// ll sub = 1;
ll sum = 0;
for (int i = 1; i < 40; i++) {
ll sub = 1;
for (int j = 1; j < i; j++) {
sub = sub * j;
}
sum += sub;
cout << sum << endl;
}
出现负数可能是爆内存了,把i的范围改为i<20:
观察运行结果,我们可以发现规律,越往后数字后面的数值基本上都是一样的,都是313
数学方法
因为很多位都是相同的,我们可以用头模定理
答案:420940313