笔试第三道 a^b mod m
发布于 2017-09-20 11:05 2402 次浏览 0 赞 最后一次编辑是 2017-09-20 11:06 来自 笔试面试  
#include<iostream>
using namespace std;
int main(){
	int a,b,m;
	cin>>a>>b>>m;
	int  num=1;
	for(int i=0;i<b;i++){
		num*=a;
		num%=m;
	}
	cout<<num;
}


9 条回复

。。。。过了???

2017-09-20 11:05

只有90%,难受

2017-09-20 11:05

裸暴力都能过90%。。。我不知道我写个啥劲。。

2017-09-20 11:06
迷你侨 回复 coder_5l40t7hP

不知道还有10%是啥

2017-09-20 11:07

少个判断m==1,直接输出0 ,举个例子, 2 0 1 你这个结果会错,应该余0,结果余1

2017-09-20 11:14
2
coder_YevNlcD2 回复 acmcoderPuwX049E

不会呀,就是0

2017-09-20 11:16
acmcoderPuwX049E 回复 coder_YevNlcD2

2 0 1 不会进入的你的for的,直接输出num ,不是1?

2017-09-20 11:17 1
    public static long pow(int a, int b, int m){
    	int result = 1;
    	for(int i=0; i<b; i++){
    		result *= (a%m);
    		result = result%m;
    	}
    	return result%m;
    }


100%啊

依旧是循环做的.这个题可能是空间会超  所以取余运算写在里面,幂直接算a%m的幂,每次乘之后再取一次模就不会超空间了



2017-09-20 11:17
2
迷你侨 回复 acmcoderPuwX049E

是滴是滴 谢谢

2017-09-20 11:31
添加回复
回到顶部