首页 > 其他 > 详细

题解 P1591 【阶乘数码】

时间:2020-03-22 23:50:08      阅读:91      评论:0      收藏:0      [点我收藏+]

一道高精度好题

高精度乘单精度,应该不是很难吧……

但是数组开小了就会RE:

技术分享图片

所以还是开大点的好……

#include <bits/stdc++.h>
using namespace std;
int c[100000];
int main()
{
  int t,n,a;
  cin>>t;
  for(int i=0; i<t; i++)
  {
    cin>>n>>a;
    memset(c,0,sizeof(c));
    c[0]=1;
    int l=1;
    for(int j=2; j<=n; j++)//开始阶乘计算
    {
      int w=0;
      for(int k=0; k<l; k++)//高精度乘单精度
      {
        c[k]=c[k]*j+w;
        w=c[k]/10;
        c[k]%=10;
      }
      while(w>0)//处理多进位
      {
        c[l]=w%10;
        l++;
        w/=10;
      }
    }
    int sum=0;
    for(int j=0; j<l; j++)
      if(c[j]==a) sum++;//统计个数
    cout<<sum<<endl;
  }
  return 0;
}

数组开成100000后:

技术分享图片

完美AC

886~~~

题解 P1591 【阶乘数码】

原文:https://www.cnblogs.com/oierscw/p/12548500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!