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

总时间限制:1000ms  内存限制: 65536kB
描述
已知长度最大为200位的正整数n,请求出2011^n的后四位。
输入
第一行为一个正整数k,代表有k组数据,k<=200接下来的k行,

每行都有一个正整数n,n的位数<=200

输出
每一个n的结果为一个整数占一行,若不足4位,去除高位多余的0
样例输入
3
5
28
792
样例输出
1051
81
5521

参考:

利用循环节:http://m.blog.csdn.net/u013675643/article/details/51820648

高精度除法:http://blog.csdn.net/qq_35479641/article/details/51810945

下面的思路参照循环节的做法。

题目只需要输出后四位,因此答案必然有一个最多5位数的循环节。于是可以先写个暴力去找循环节,发现循环节长度为500,这个数就很好处理了。后面读入n时只保留后三位数,再mod500就得出答案了,比写高精度简单多了~

 #include<stdio.h>
#include<string.h>
// m^n % k
long long quickpow(long long m,long long n,long long k)
{
long long ans = ;
while (n > )
{
if (n & )
ans = (ans*m)%k;
n = n >> ;
m = (m*m)%k;
}
return ans;
}
int main(int argc, char *argv[])
{
int k;
int i;
char n[];
int N,len;
scanf("%d",&k);
for(i=;i<k;i++)
{
scanf("%s",n);getchar();
N=;
len=strlen(n);
N=n[len-]-'';
if(len>=) N=(n[len-]-'')*+N;
if(len>=) N=(n[len-]-'')*+N;
if(len>=) N=(n[len-]-'')*+N;
N=N%;
printf("%lld\n",quickpow(,N,));
}
return ;
}

暴力寻找循环节的一个简单操作:

 #include <stdio.h>

 long long quickpow(long long m,long long n,long long k)//返回m^n % k的结果
{
long long ans = ;
while (n > )
{
if (n & )
ans = (ans*m)%k;
n = n >> ;
m = (m*m)%k;
}
return ans;
}
int main(int argc, char *argv[])
{
freopen("data.txt","w",stdout);
int A[],B[];
for(int i=;i<;i++)
{
//printf("%d\n",quickpow(2011,i,10000));
A[i]=quickpow(,i,);
} for(int i=;i<;i++)
{
for(int j=i+;j<;j++)
{
if(A[i]==A[j]) { B[i]=j;break; }
}
}
for(int i=;i<;i++)
{
printf("%d %d\n",A[i],B[i]);
}
return ;
}

还有一个数学论证:http://blog.csdn.net/li744831579/article/details/8784547

2011的n次方的更多相关文章

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

    2991:2011 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 已知长度最大为200位的正整数n,请求出2011^n的后四位. 输入 第一行为一个正整数k ...

  2. Image Processing and Analysis_8_Edge Detection:Edge and line oriented contour detection State of the art ——2011

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  3. NOI2.4 2011

    描述 已知长度最大为200位的正整数n,请求出2011^n的后四位. 输入 第一行为一个正整数k,代表有k组数据,k<=200接下来的k行, 每行都有一个正整数n,n的位数<=200 输出 ...

  4. [C#项目开源] MongoDB 可视化管理工具 (2011年10月-至今)

    正文 该项目从2011年10月开始开发,知道现在已经有整整5年了.MongoDB也从一开始的大红大紫到现在趋于平淡. MongoCola这个工具在一开始定位的时候只是一个Windows版本的工具,期间 ...

  5. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

  6. [LeetCode] Super Pow 超级次方

    Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large posi ...

  7. [LeetCode] Power of Four 判断4的次方数

    Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Example: Gi ...

  8. [LeetCode] Power of Three 判断3的次方数

    Given an integer, write a function to determine if it is a power of three. Follow up:Could you do it ...

  9. [LeetCode] Power of Two 判断2的次方数

    Given an integer, write a function to determine if it is a power of two. Hint: Could you solve it in ...

随机推荐

  1. jquery click()方法模拟点击事件对a标签不生效的解决办法

    阅读数:8971 <a href="www.baidu.com"></a> 1 问题分析 点击A标签本身,并不会触发跳转到指定链接的事件,就是说,我们平时都 ...

  2. Spring Boot 文件上传与下载

    原文地址: https://www.cnblogs.com/studyDetail/p/7003253.html 1.在pom.xml文件中添加依赖 <project xmlns="h ...

  3. 洛谷 P1347 排序

    题目描述 一个不同的值的升序排序数列指的是一个从左到右元素依次增大的序列,例如,一个有序的数列A,B,C,D 表示A<B,B<C,C<D.在这道题中,我们将给你一系列形如A<B ...

  4. Go语言之进阶篇服务器如何知道用户需要什么资源

    1.服务器如何知道用户需要什么资源 示例: package main import ( "fmt" "net" ) func main() { //监听 lis ...

  5. linux驱动编写(电源管理驱动)

    对于嵌入式设备来说,合适的电源管理,不仅可以延长电池的寿命,而且可以省电,延长设备运行时间,在提高用户体验方面有很大的好处.所以,各个soc厂家在这方面花了很多的功夫.下面,我们可以看看linux是如 ...

  6. Palindrome Number leetcode java

    题目: Determine whether an integer is a palindrome. Do this without extra space. click to show spoiler ...

  7. Neo4j 2.0 生产环境集群搭建

    一.在windows上搭建Neo4j ha cluster的配置方法: 例如:建立集群的三台机器的ip分别为:10.230.9.91,10.230.9.92,10.230.9.93. 10.230.9 ...

  8. CSS布局中一个简单的应用BFC的例子

    什么是BFC BFC(Block Formatting Context),简单讲,它是提供了一个独立布局的环境,每个BFC都遵守同一套布局规则.例如,在同一个BFC内,盒子会一个挨着一个的排,相邻盒子 ...

  9. Python科学计算技巧积累四——双y轴图像绘制

    双y轴图像具有单y轴图像没有的对比效果,在MATLAB中有plotyy函数可以实现,Python的实现方式没有MATLAB那样方便,不过实现效果却也不见得差. 以往我常用的绘图命令是import ma ...

  10. Android -- Serializable和Parcelable需要注意的

    Serializable 静态变量序列化不会被保存 public class Test implements Serializable { private static final long seri ...