阅读程序 · 答案 782 · 考点:循环结构、运算符与表达式、数论算法、快速幂
← 整套速查表 NOIP 普及组初赛 全部真题阅读程序写结果:
#include <iostream>
using namespace std;
const int c=2009;
int main()
{
int n,p,s,i,j,t;
cin >> n >> p;
s=0;t=1;
for(i=1;i<=n;i++)
{
t=t*p%c;
for(j=1;j<=i;j++)
s=(s+t)%c;
}
cout << s << endl;
return 0;
}输入:11 2
程序计算:t从1开始,每次t=t*p%2009,然后s累加t,重复i次(i从1到n)。n=11,p=2。
(1) t每次乘p模2009,然后s累加t重复i次。(2) 双重循环:外层i=1~n,内层j=1~i累加s。
n=11, p=2, c=2009
i=1: t=1*2%2009=2; s=0+2=2 i=2: t=2*2%2009=4; s=2+4+4=10 i=3: t=4*2%2009=8; s=10+8+8+8=34 ...
按照程序逻辑模拟,最终s=782。