码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-01-17 23:17:36      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:

题目如下:

技术分享

代码如下:

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取余,不然会造成数据溢出,这个题目就是考这个知识点(数据溢出)。

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

标签:

原文地址:http://blog.csdn.net/yayun0516/article/details/50533578

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!