C趣味程序百例(02)求数高次方数的尾数

C趣味程序百例(02)求数高次方数的尾数,第1张

C趣味程序百例(02)求数高次方数的尾数,第2张

6.高次方数的尾数
求13的13次方的后三位
*问题分析及算法设计
解决这个问题最直接的方法就是把后三位乘以13的13次方截掉。
但由于计算机能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。其实题目只需要后三位数的值,完全没必要求13的13次方的完整结果。
通过研究乘法定律,发现乘积的后三位数值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。使用这个规则,程序可以大大简化。
*程序描述和注释
# include
void main()
{
int I,x,y,last = 1;/*变量last在求x */
printf("输入x和y (x * * y):")的y次方的过程中保存部分积的后三位;
scanf("%d**%d ",&x,& y);
for(I = 1;i last = last * x % 1000/*最后乘以x,取模1000,即乘积的后三位*/[br/] printf("最后3位% d * *% d是:% d \ n ",x,y,最后% 1000);/*打印结果*/
}
*运行结果
输入x和y(x * * y):13 * * 13
13 * * 13的后3位是:253
输入x和y(13 * * 13)

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C趣味程序百例(02)求数高次方数的尾数

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情