zoukankan      html  css  js  c++  java
  • 有趣的数学(一)

      2019年3月19日,我参加了学校和各企业一起办的双选会。本来我是打算再考一年的,不过我觉得如果能先尝试一下工作也很不错鸭。

      

      今天面试官问了我一道题:100的阶乘后面有多少个0?

      我刚听到的时候有点懵懵的,还以为他问我那个数有多大,被阶乘的巨大结果瞬间支配,甚至还想到了对数求解的方法。结果面试的小哥哥说这道题用数论的方法很简单的。

      我一拍脑门,求多少个0不就是有多少个10吗,那5,15,25,...,100不就是答案了嘛,然后我就回答了20个,啊,我的脑子啊!

      这个很明显应该看因数里有多少个2X5嘛,因为2是足够多的,所以看因数里面5的个数就好啦,25的倍数里面5有两个,所以是20+4=24个。

      对,没错,就是这么简单的题,哭辽,数学思维被小笼包侵占了。

      

    后记

    2020年4月15日,大数阶乘用字符串相乘也可

    #include<iostream>
    #include<stdio.h>
    #include<cmath>
    #include<cstring>
    #include<vector>
    using namespace std;
    
    string multiply(string num1, string num2) {
            if(num1=="0"||num2=="0")return "0";
            vector<int> ans;
            ans.push_back(0);
            int z=0;
            for(int i=num2.size()-1;i>=0;i--)
            {
                int a=num2[i]-'0';
                int c=0,tag=z;
                for(int j=num1.size()-1;j>=0;j--)
                {
                    int b=num1[j]-'0';
                    if(tag>ans.size()-1){
                        ans.push_back(0);
                    }
                   int tmp=ans[tag];
                    ans[tag]=(b*a+c+ans[tag])%10;
                    tag++;
                    c=(b*a+c+tmp)/10;
                }
                if(c!=0)ans.push_back(c);
                z++;
            }
            string str="";
            for(int i=ans.size()-1;i>=0;i--)
                str+=(ans[i]+'0');
            return str;
        }
     
    int main(){
        string res="1";
        for(int i=1;i<=100;i++){
            res=multiply(to_string(i),res);
        }
        cout<<res<<endl;
        return 0;
    }

    //93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

  • 相关阅读:
    spring.net 结合简单三层实例
    Spring.Net 如何管理您的类___对象的手动装配
    性能优化小结
    C#实例解析适配器设计模式
    谈AOP要step by step
    C#对图片文件的压缩、裁剪操作初探
    Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)
    多线程实现资源共享的问题学习与总结
    ASP.NET 设计模式
    Mac技巧索引
  • 原文地址:https://www.cnblogs.com/Dancing-Fairy/p/10557849.html
Copyright © 2011-2022 走看看