大数的快速幂(模拟水题。)

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

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

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

这道题其实很简单,就是用快速幂的方法,只不过数有点大,爆int,爆ll,因此我们用字符串来模拟数字的输入,和大数的加减法类似,只不过换了一种运算方法,但本质是差不多的。。有点水。。

至于快速幂的算法的介绍在我的另一个博客中,链接:

http://blog.csdn.net/qq_40482358/article/details/79323636

知道快速幂之后这道题就变成水题了。。。:

ac:

#include<stdio.h>
#include<string.h>
#include<math.h>

//#include<map>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;

#define ll long long
#define da    0x3f3f3f3f
#define xiao -0x3f3f3f3f
#define clean(a,b) memset(a,b,sizeof(a))// 雷打不动的头文件


int main()
{
	int t;
	cin>>t;								//t组样例 
	while(t--)
	{
		int shuzu[250];					//每一位用数组储存方便一点 
		clean(shuzu,0);					//注意清空元素 
		string chuan;					//先用字符串储存每一位 
		cin>>chuan;						//输入 
		int i,j,l=chuan.size();			//l:取长 
		for(i=0;i<l;++i)
			shuzu[i]=chuan[i]-'0';		//吧字符串中的元素转化成数字存到数组中 
		int f=1,ji=1,can=2011;			//底数是2011; 
		for(i=0;i<l;++i)				//首先判断输入的数字是不是0 
		{
			if(shuzu[i]!=0)
				break;					//不是0就快速幂 
			else if(i==l-1&&shuzu[i]==0)//是0就直接输出1 
				f=0;
		}
		while(f)						//快速幂算法 
		{
			if(shuzu[l-1]&1)			//个位数的判断 
				ji=ji*can%10000;		//是则乘上取模 
			can=can*can%10000;			//底数平方 
			for(i=0;i<l;++i)			//模拟除2(右偏运算符) 
			{
				int temp;				//temp是中间变量 
				temp=shuzu[i]%2;		//用来给下一个数凑余数 
				shuzu[i]=shuzu[i]/2;	//这个数除2 
				shuzu[i+1]=shuzu[i+1]+temp*10;//下一位加上这个数的余数 
			}
			for(i=0;i<l;++i)			//判断现在的幂是不是0 
			{
				if(shuzu[i]!=0)
					break;
				else if(i==l-1&&shuzu[i]==0)
					f=0;
			}							//如果不是0就继续,如果是0就结束循环 
		}
		cout<<ji%10000<<endl;			//输出答案对10000取模四位数; 
	}
}

是不是很水??没有新东西,全是老的,观众老爷们点个赞再走吧可怜可怜可怜。。。





全部评论

相关推荐

01-08 12:01
门头沟学院 Java
冰炸橙汁_不做oj版:不接好运
点赞 评论 收藏
分享
2025-12-01 16:35
内蒙古工业大学 Java
上个月实习了7天被开,哎想起来真窝囊,领导叫我去会议室,问我技术栈,当时紧张的,问我有没有做项目啥的,我说没有,有练习,其实我也是做过两个项目的但是,当时紧张的说不出来,就说会java,springboot,我没好好看系统,就说系统是增删改查,他让我回去再看,说熟悉完再看走开发路线还是实施什么的路线,3天后问我,我说这是一个审批系统,其实也不是,是一个检测系统,主要流程是委托&nbsp;&nbsp;受理然后&nbsp;样品管理&nbsp;报告管理&nbsp;审核啥的&nbsp;。然后问我你觉得系统的好处是啥,忘了当时咋说的了,让我回去再熟悉一下。第二周也没安排任务,没有配电脑,然后周二,我当时企业微信没看,和朋友聊天呢,然后他发了任务一个小时之后我才看到,然后我回复的时候是3点半,未读过了一会儿hr给我叫到小黑屋,说觉得不合适,然后让我填离职表。后来想想一开始要是自信点是不是就能配电脑然后开发了。租的房子转租也没租出去,该交房租了,好在当时是月付,没有选择季付,不然哭都没地方。又回到基地了,好久没学了,有时候我也在想为啥我这么消极,这么不自信,哎,面试什么的也挂了好多了。昨天我妈和我打电话说他年前体检就检查出来脸上骨头里面有囊肿,手术很复杂,说要经过鼻子,医生说手术之后容易感染,他老是头疼,我现在在实训基地,离家好远,我爸也有事,我妈说要不拖到我姐放假回去得1月。不知不觉这么多字了,现在是12.1下午4.20,刚面试完胜软,感觉躺平已经成了口头禅了,想离家远一点,但是每个月还是会问家里要生活费,教室和宿舍还是那样,但是不知为何,我总有一种物是人非的感觉,上厕所和接水要去四楼,我们之前的教室就在四楼,路过教室的时候总有一种恍惚的感觉。网上说高敏感是种天赋,我却感觉老是很痛苦,总是能听出一些弦外之音,可能人家也不是那个意思。我也不知道要表达啥了在都是大佬都群里面,默默的看着他们的发言,遇到问题找大佬解决,但是没有利益交换,大佬也会觉得厌烦的。焦虑什么的是能力跟不上欲望,每天一边郁郁寡欢一遍暴饮暴食,总是希望别人能关心一下自己,但自己也不常关心别人。之前一个大佬给我内推,但是我力扣也没刷都不好意思面试,发了两次面试通知我也没面。就到这里吧,毕业设计题目出来了,先学一下黑马的springboot3vue3全栈吧。
_mos_:别的不多说 就你上班聊天摸鱼整整一个小时不看信息我都觉得很抽象了别扯什么自己这那的 我感觉领导确实已经给你很多时间和空间了 自己还是想想有没有真的用心去做 不是什么东西都要别人推着你去干的 总得学会主动一点吧 最后中肯地说一句 卷不了还是别走互联网这条路了 不好意思说话有些直白但希望你可以明白我的意思
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务