NOIP 普及组初赛 · NOIP 2009 普及组初赛试题 第 25 题

阅读程序 · 答案 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

答案:782

考点

循环结构运算符与表达式数论算法快速幂

解题思维

程序计算: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。

输出:782

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断