蓝桥杯真题——乘积尾零

乘积的零的产生来源于所有被乘数的因子2和5相乘,分别统计所有被乘数的因子2和5的个数,取两者小的值就是答案

#include<iostream>
using namespace std;

struct st
    {
        int a2,a5;
    }st;
int main()
{
    int data[]={5650,4542,3554,473,946,4114,3871,9073,90,4329, 2758,7949,6113,5659,5245,7432,3051,4434,6704,3594, 9937,1173,6866,3397,4759,7557,3070,2287,1453,9899, 1486,5722,3135,1170,4014,5510,5120,729,2880,9019, 2049,698,4582,4346,4427,646,9742,7340,1230,7683, 5693,7015,6887,7381,4172,4341,2909,2027,7355,5649, 6701,6645,1671,5978,2704,9926,295,3125,3878,6785, 2066,4247,4800,1578,6652,4616,1113,6205,3264,2915, 3966,5291,2904,1285,2193,1428,2265,8730,9436,7074, 689,5510,8243,6114,337,4096,8199,7313,3685,211
    };
    int len=sizeof(data)/sizeof(int);
    st.a2=0;st.a5=0;
    for(int i=0;i<len;i++)
    {

        while(data[i]%2==0)
        {
            st.a2++;
            data[i]/=2;
        }

        while(data[i]%5==0)
        {
            st.a5++;
            data[i]/=5;
        }
    }
    int minn=0;
    if(st.a2>=st.a5)minn=st.a5;
    else  minn=st.a2;
    cout<<minn<<endl;
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值