分析

许多初学者看到本题最容易想到的方法就是:将13累乘13次后截取最后三位即可。但是计算机中存储的整数有一定的范围,超出某范围将不能正确表示,所以用这种算法不可能得到正确的结果。实际上,题目仅要求后三位的值,完全没有必要把13的13次方完全求出来。

算法设计

手工计算13的13次方的步骤如下:

研究乘法的规律会发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,在计算下一次的乘积时,我们只需用上次乘积的后三位来参与运算(即在求第三次乘积时,上次的乘积2197并不需要都参与运算,只取其后三位197再次与13相乘即可)。求某数的后三位的算法用某数对1000取模。

编程过程中,将累乘得到的积存储到变量last中,在进行下一次相乘之前先截取last的后三位再相乘,即:last%1000*13,将结果存储到last中:last=last*x(x的值为13)%1000。 因第一次相乘时用到变量last的初值,故在定义时给last赋初值,或在参与计算之前给last赋初值1。

下面是完整的代码:

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int i, x, y, last=1;                  /*变量last保存求得的x的y次方的部分积的后三位*/
  5. printf("请输入x 和 y:\n");
  6. scanf("%d %d", &x, &y);
  7. for(i=1; i<=y; i++)                 /*x自乘的次数y*/
  8. last = last * x % 1000;         /*将last乘x后对1000取模,即求积的后三位*/
  9. printf("高次方数的后三位为:%d\n", last);
  10. return 0;
  11. }

运行结果:

请输入 x 和 y:
13 13
高次方数的后三位为:253

C语言:求高次方数的尾数相关推荐

  1. Java高次方数尾数输出_C语言求高次方数的尾数代码解析

    问题描述 求13的13次方的最后三位数. 问题分析 许多初学者看到本题最容易想到的方法就是:将13累乘13次后截取最后三位即可.但是计算机中存储的整数有一定的范围,超出某范围将不能正确表示,所以用这种 ...

  2. C语言每日一练——第79天:高次方数的尾数

    C语言每日一练 2022年1月27日 文章目录 题目描述 问题分析 代码实现 运行结果 题目描述 求13的13次方的最后三位数 问题分析 根据乘法竖式计算我们可以发现,要得到乘法结果的后三位,只需要用 ...

  3. C语言求高次方的尾数

    求13的13次方的的最后三位数 刚开始我想的是先存储值,后计算,但数据类型装不了那么大的数 所以利用循环,-> 任何三位及以上的数%1000都是取最后三位 研究乘法的规律会发现:乘积的最后三位的 ...

  4. 13的高次方数(C语言)

    题目描述: 求13的n次方(12<n≤130000000000)的最后三位数.例如:13的13次方的最后三位数是253,13的20次方的最后三位数是801. 输入: 有多组测试数据 每组测试数据 ...

  5. 练习:求高次方的尾数(末三位)

    APP发文编辑机制更新后,目前还不可以上传图片,

  6. c语言求正整数连续数的和大数字_机器视觉(图像处理)入门金典之图像数字化及处理方法...

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 声明:内容大部分从某文档中搬砖过来,部分自己理解的标注.最开始接触 ...

  7. 用c语言求五位回文数,C语言求回文数(详解版)

    问题描述 打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数). 问题分析 对于要判定的数n计算出其平方后(存于a),按照"回文数"的定义要将最高位与最低位 ...

  8. C语言求毕达哥拉斯亲密数

    亲密数 2500年前数学大师毕达哥拉斯就发现,220与284两数之间存在着奇妙的联系: 220的真因数之和为:1+2+4+5+10+11+20+22+44+55+110=284 284的真因数之和为: ...

  9. c语言编写函数求回文数,C语言求回文数(详解版)

    问题描述 打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数). 问题分析 对于要判定的数n计算出其平方后(存于a),按照"回文数"的定义要将最高位与最低位 ...

最新文章

  1. 多视图立体匹配论文分享CasMVSNet
  2. Silverlight Blend动画设计系列四:倾斜动画(SkewTransform)
  3. 提高ASP.NET性能的一点方法
  4. 合并多个文本文件中的内容到一个文件中
  5. 深入研究java.lang.Runtime类【转】
  6. python命令行模式和交互模式区别_对命令行模式与python交互模式介绍
  7. 基于Starling移动项目开发准备工作
  8. 全国地区 mysql表_2017全国省市区数据库-2017全国省市区数据库下载 官方版 - 河东下载站...
  9. Win10 DirectShow
  10. 第三方支付接口对接基本流程
  11. 在c语言中对于整型变量采用哪两种存储形式,在C语言中的实型变量分为2种类型,它们是()和()...
  12. cox生存分析-从基本概念到参数求解
  13. 如何辩证看待技术与业务的关系
  14. 理性分析:那些吃蝙蝠的人,根本动机是什么?
  15. 怎么压缩动态图片?手机怎么压缩gif动图?
  16. 常用MAVROS话题和服务
  17. 视音频编解码技术零基础学习方法(向雷神致敬)
  18. 微信小程序,不可不知的一二三四
  19. Android自定义实现点赞效果!
  20. Trunk端口的配置

热门文章

  1. C++ 类成员函数指针的使用方法
  2. python在遥感中的应用_Python在遥感中的应用——导言
  3. Java等额本息实现
  4. nodejs卸载安装
  5. 微分方程Gear方法MATLAB,常微分方程的数值解
  6. 2017年计算机统考试题,2017年计算机统考试题题库及答案
  7. sniper安装配置
  8. NGINX配置多域名
  9. java单继承和多继承
  10. js给数组的每个对象添加字段(字段值对应下标)