• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++趣味小程序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1、高次方数的尾数
   求13 的13 次方的最后三位数
 解本题最直接的方法是:将13 累乘13 次方截取最后三位即可。但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目
仅要求最后三位的值,完全没有必要求13 的13 次方的完整结果。研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关
利用这一规律,可以大大简化程序。

#include<iostream>

using namespace std;

int main()
{
   int x,y;
   cin>>x>>y;
   int sum=0;
   if(y==1)
   {
      cout<<x%1000<<endl;
   }
   else
   {
       int last=x%1000;//记录最后三位
       for(int i=1;i<y;i++)
       {
            sum=last*x;
            last= sum%1000;
       }
       cout<<last<<endl;
   }
   return 0;
}

2、阶乘尾数零的个数
100!的尾数有多少个零?
可以设想:先求出100!的值,然后数一下末尾有多少个零。事实上,与上题一样,由于计算机所能表示的整数范围有限,这是不可能的。为了解决这个问题,必须首先从数学上分析在100!
结果值的末尾产生零的条件。不难看出:一个整数若含有一个因子5 ,则必然会在求100!时产生一个零。因此问题转化为求1 到100 这100 个整数中包含了多少个因子5 。若整数N 能被25 整除,则N 包含2 个因子5 ;若整数N 能被5 整除,则N 包含1 个因子5 。

#include<iostream>

using namespace std;

int main()
{
   int n=0;
   cin>>n;
   int num=0;
   for(int i=5;i<=n;i++)
   {
      if(i%5==0)num++;
      if(i%25==0)num++;
   }
   cout<<num<<endl;
   return 0;
}

 

3、


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序对接阿里云视频点播,备忘发布时间:2022-07-18
下一篇:
微信小程序组件的引入以及组件的传递属性发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap