C语言趣味题1——高次方数的尾数

来源:互联网 发布:网络红歌大庆小芳全集 编辑:程序博客网 时间:2024/05/31 06:21

1313次方的最后三位数。

*问题分析与算法设计

解本题最直接的方法是:将13累乘13次后截取最后三位。

但是由于计算机所能表示的整数范围有限,用这种正确的算法不可能得到正确的结果。

研究乘法的规律:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。

*程序如下:

#include <stdio.h>

void main()

{

       int i, x, y, last = 1;      //last保存求XY次方过程中的部分积的后三位

       printf("Input X and Y(X*Y):");

       scanf("%d*%d",&x,&y);

       for(i=1;i<=y;i++)           //X自乘Y

       {

              last = last * x % 1000; //求积的后三位

       }

       printf("The last 3 digitals of %d * %d is:%d/n",x,y,last%1000);

}

 

 

原创粉丝点击