上机题目(初级)-高次方数的尾数(Java)

页面导航:首页 > 软件编程 > Java编程 > 上机题目(初级)-高次方数的尾数(Java)

上机题目(初级)-高次方数的尾数(Java)

来源: 作者: 时间:2016-01-18 15:52 【

题目如下:

代码如下:

package huawei;

public final class Demo {
	/*
	功能: 求解M的N次方的最后三位数(M,N均大于10)
	输入参数:
	    int M:M > 10
	    int N:N > 10
	返回值:
	    M的N次方的最后三位数
	*/

	public static int getLast3DigitsOfMN(int M, int N)
	{
		
		int result = 1;
	    for(int i = 0;i < N;++i){
	        result = (result * (M % 1000)) % 1000;
	    }
	    return result;
	
	}

}
当m, n很大时, m的n次方无法用基本的数据类型表示...分析可以发现, 乘积的最后三位只与乘数和被乘数的最后三位有关, 而与高位无关, 所以每次将乘积结果对1000取模即可...

用循环的方式求M的N次方,每次做乘法之后先除以1000取余,不然会造成数据溢出,这个题目就是考这个知识点(数据溢出)。

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<