package Algorithm;
public class Algorithm_modTest
{
public static void main(String[] args)
{
modProcess mp = new modProcess(2,100,5);
mp.findModProcess();
mp.getResult();
}
}
class modProcess
{
int baseNumber;
int exponent;
int modNumber;
int minExponent;
int modResult;
modProcess(int b,int e,int m)
{
this.baseNumber = b;
this.exponent = e;
this.modNumber = m;
this.minExponent =1;
this.modResult = 0;
}
public void findModProcess()
{
if(this.exponent<this.modNumber)
{
this.modResult = getExponentValue(this.baseNumber, this.exponent)%this.modNumber;
}
else
{
this.minExponent = findMinExponent(); //找到最小的指数
int remainExponent = this.exponent;
while((remainExponent>=this.minExponent))
{
remainExponent = remainExponent - this.minExponent;
}
int remainNumber = getExponentValue(this.baseNumber, remainExponent);
this.modResult = remainNumber%this.modNumber;
}
}
public int findMinExponent() //寻找最小的指数
{
boolean b = true;
int sum = this.baseNumber;
int minCount=1;
while(b)
{
if((sum-1)%(this.modNumber)==0)
{
b = false;
}
else
{
sum = sum*this.baseNumber;
minCount++;
}
}
return minCount;
}
public void getResult() //结果处理
{
System.out.println("modResult: "+this.modResult);
}
public int getExponentValue(int base,int e) //获取整数指数的值
{
int result=1;
for(int i=0;i<e;i++)
{
result = result*base;
}
return result;
}
}
JAVA数据结构课后习题——2的100次方(mod5)是多少?
最新推荐文章于 2021-05-19 17:50:30 发布