2991:2011 (数学)

【题目描述】

    已知长度最大为200位的正整数n,请求出2011^n的后四位。

【题目链接】

    http://noi.openjudge.cn/ch0204/2991/

【算法】

    一开始想的是把n转换成二进制,然后快速幂,但要用到高精度除法,很烦。容易发现2011的501次方mod10000后为2011,所以2011的n次方和2011的n%500次方膜10000同余,而n%500和n的后三位的数%500结果应该相同,然后快速幂结束。(注意:strlen()返回值是size_t无符号的整数,要转换成有符号)

【代码】

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int t,num,ans,b,i;
 4 char a[210];
 5 int main()
 6 {
 7     scanf("%d",&t);
 8     while(t--) {
 9         num=0;
10         ans=1;
11         b=2011;
12         scanf("%s",a);
13         for(i=(int)strlen(a)-3;i<(int)strlen(a);i++) if(i>=0) num=num*10+a[i]-‘0‘;
14         num%=500;
15         for(;num;num>>=1) {
16             if(num&1) ans=(long long)ans*b%10000;
17             b=(long long)b*b%10000;
18         }
19         printf("%d\n",ans);
20     }
21 }

原文地址:https://www.cnblogs.com/Willendless/p/9357331.html

时间: 2025-01-22 11:57:37

2991:2011 (数学)的相关文章

2991:2011 求2011^n的后四位。

2991:2011 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 已知长度最大为200位的正整数n,请求出2011^n的后四位. 输入 第一行为一个正整数k,代表有k组数据,k<=200接下来的k行, 每行都有一个正整数n,n的位数<=200 输出 每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0 样例输入 3 5 28 792 样例输出 1051 81 5521 1 #include<iostream> 2 #include

BZOJ 2326 HNOI 2011 数学作业 矩阵乘法

题目大意 求一个这样的数:"12345678910111213--"对m取模的值. 思路 观察这个数字的特点,每次向后面添加一个数.也就是原来的数乘10^k之后在加上一个数.而且处理每个数量级的时候是相似的.所以就可以用矩阵乘法来加速.我构造的矩阵是这样的. [当前数字累加数字1]×???数量级10011001???=[新的数字累加数字+11] CODE #include <cstdio> #include <cstring> #include <iost

[BZOJ 2326][HNOI 2011]数学作业(矩阵快速幂)

蒟蒻线性代数太烂了...这个逼题居然卡了半天才做出来,弱的不行啊... 矩阵快速幂,把n这个len位数拆成len次分段快速幂就可以了. 注意取模的数字m<=1e9,所以矩阵乘法运算时要先对乘数取模,防止中间运算结果太大溢出,坑爹啊 代码: #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #d

[家里蹲大学数学杂志]第065期南开大学2011年高等代数考研试题参考解答

1($20'$) 设 ${\bf A}$ 为秩为 $1$ 的 $n$ 阶方阵, ${\bf A}$ 的迹 $\tr({\bf A})=a\neq 0$. 试求出 ${\bf A}$ 的所有特征值 (写出重数). 解答: 由 $\rank({\bf A})=1$ 知 ${\bf A}$ 的任意两行均线性相关, 而 $$\bex {\bf A}=\sex{\ba{cccc} b_1&b_2&\cdots&b_n\\ c_2b_1&c_2b_2&\cdots&c_

[家里蹲大学数学杂志]第058期兰州大学2011年数学分析考研试题参考解答

$\bf 摘要$: 本文给出了兰州大学 2011 年数学分析考研试题的一个参考解答. $\bf 关键词$: 兰州大学; 数学分析; 考研试题 1计算题 ($6\times 10'=60'$). (1)求极限 $$\bex \lim_{x\to 0}\frac{e^{x-\sin x}-e^\frac{x^3}{6}}{x^5} \eex$$ 解答: $$\bex \mbox{原极限}&=&\lim_{x\to 0}\frac{e^\xi\sex{x-\sin x-\frac{x^3}{6}

[家里蹲大学数学杂志]第245期厦门大学2011年数学分析考研试题参考解答

1选择题 (本题含 5 小题满分 30 分, 每小题 6 分) (1)函数 $y=f(x)$ 在点 $x_0$ 的某个邻域内具有连续的 2 阶导数, 满足 $f'(x_0)=0$, 并且 $f''(x_0)<0$, 则 (A) A. $f(x)$ 在点 $x_0$ 处取极大值; B. $f(x)$ 在点 $x_0$ 处取极小值; C. $(x_0,f(x_0))$ 为曲线 $y=f(x)$ 的拐点; D. $f(x)$ 在点 $x_0$ 的某个邻域内单调减少. 证明: 事实上, $$\bex f

[家里蹲大学数学杂志]第35期四川大学2011年数学分析考研试题参考解答

1计算. (1)limn→∞(n+n+2n??√???????√?????????????√?n??√) . 解答: 原极限===limn→∞n+2n??√???????√n+n+2n??√???????√?????????????√+n??√limn→∞1+2n√??????√1+1n+2n3/2???????√????????????√+112. (2)limn→∞∑2nk=11n+k . 解答: 原极限===limn→∞1n∑k=12n11+k/n∫2011+xdxln3. (3)若 li

HDU 1988 &amp; ZOJ 2991 Flipping Burned Pancakes(数学啊+模拟)

题目链接: HDU:http://acm.hdu.edu.cn/showproblem.php?pid=1988 ZOJ:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1990 Problem Description The cook at the Frobbozz Magic Pancake House sometimes falls asleep on the job while cooking pancakes. As

【bzoj 2326】【HNOI 2011】数学作业

题解: 矩阵裸体. 1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 typedef long long ll; 5 ll n,mod; 6 struct Matrix{ 7 ll a[4][4]; 8 Matrix (){ 9 memset(a,0,sizeof(a)); 10 } 11 inline void e(){ 12 for(int i=1;i<=3;i++) 13 a[i][i]=1