设为首页 加入收藏

TOP

C语言实例:自守数
2014-11-23 18:00:35 】 浏览:8557
Tags:语言 实例

  自守数是指一个数的平方的尾数等于该数自身的自然数。例如:


  252=625 762=5776 93762=87909376


  请求出200000以内的自守数


  *问题分析与算法设计


  若采用“求出一个数的平方后再截取最后相应位数”的方法显然是不可取的,因为计算机无法表示过大的整数。


  分析手工方式下整数平方(乘法)的计算过程,以376为例:


  376 被乘数


  X 376 乘数


  ----------


  2256 第一个部分积=被乘数*乘数的倒数第一位


  2632 第二个部分积=被乘数*乘数的倒数第二位


  1128 第三个部分积=被乘数*乘数的倒数第三位


  ----------


  141376 积


  本问题所关心的是积的最后三位。分析产生积的后三位的过程,可以看出,在每一次的部分积中,并不是它的每一位都会对积的后三位产生影响。总结规律可以得到:在三位数乘法中,对积的后三位产生影响的部分积分别为:


  第一个部分积中:被乘数最后三位*乘数的倒数第一位


  第二个部分积中:被乘数最后二位*乘数的倒数第二位


  第三个部分积中:被乘数最后一位*乘数的倒数第三位


  将以上的部分积的后三位求和后截取后三位就是三位数乘积的后三位。这样的规律可以推广到同样问题的不同位数乘积。


  按照手工计算的过程可以设计算法编写程序。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言实例:回文数 下一篇计算机二级C语言实例:回文素数

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目