zoukankan      html  css  js  c++  java
  • 利用工具解题

     

    标题:分数
    1/1 + 1/2 + 1/4 + 1/8 + 1/16 + ….
    每项是前一项的一半,如果一共有20项,
    求这个和是多少,结果用分数表示出来。
    类似:
    3/2
    当然,这只是加了前2项而已。分子分母要求互质。
    注意:
    需要提交的是已经约分过的分数,中间任何位置不能含有空格。
    请不要填写任何多余的文字或符号。

    解题:等比数列求和公式:

    启动excel,求2^20-1和2^19最大公约数

    excel的最大公约数指令是GCD(num1位置,num2位置)

    但是此题好像超过excel求最大公约数的范围了,还是程序求吧

    #include<bits/stdc++.h>
    using namespace std;
    
    int gcd(int a,int b){
        
    for(int i=2;i<=min(a,b);i++){
        if(a%i==0&&b%i==0){
            return i;
        }
    }    
    return 1;    
    } 
    int main()
    {
        int a,b;//int在c++中占4个字节,2^20完全可以用int存 
        //cout<<sizeof(int);//4个字节,16进制范围:0x80000000~0x7FFFFFFF  
        cout<<gcd(pow(2,20),pow(2,19)-1);
        return 0;
    }

    最大公约数是1

    答案就直接是2^20-1/2^19

    用系统计算器算出

    答案:1048575/524288;

    附上多个数求最大公约数代码:蓝桥杯也出过类似的

    #include<bits/stdc++.h>
    using namespace std;
    
    int gcd(int a,int b){
        
    for(int i=2;i<=min(a,b);i++){
        if(a%i==0&&b%i==0){
            return i;
        }
    }    
    return 1;    
    } 
    int main()
    {
        int a[10];
        for(int i=0;i<10;i++)cin>>a[i];
        int t=gcd(a[0],a[1]);
        //多个数求最大公约数 
        for(int i=2;i<10;i++){
        t=gcd(t,a[i]);    
        }cout<<t;
        return 0;
    }

     标题:星期一 
    整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一? 
    (不要告诉我你不知道今天是星期几) 
    注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。

    解题:首先利用系统时钟找到2000年最后一个星期日(2000/12/25)

    打开excel将2000/12/25输入到A的第一行,将A2=A1-7;然后一直将其往下拖

    注意将单元格设置为日期,excel不记录1900年之前的数据,此题没有影响

    答案:5217

    标题:乘积尾零
    如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?
    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
    注意:需要提交的是一个整数,表示末尾零的个数。不要填写任何多余内容。

    工具:java,java有大数相乘的ecplise,尽管你考得是c++也有Java的编译器,所以ok

    excel连乘函数:PRODUCT(A1:A100),可惜超出范围了

    常规方法:将一个数拆成x个2乘上y个5,统计所有数中2的个数和5的个数,谁少答案就是谁(我记得我之前写过这道题的代码,这里就不再重复了)

    答案:31

    蓝桥杯出过还有类似两个日期的差多少天也可以用,excel解决

    不一样的烟火
  • 相关阅读:
    Caused by: java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
    Android 数据库 OrmLite Failed to open database
    【译】Android 数据库 ORMLite
    SIP
    Android LRUCache
    Enumeration与Iterator的对比
    URI, URL, and URN
    adb device offline 解决办法
    AudioFormat
    AudioTrack
  • 原文地址:https://www.cnblogs.com/cstdio1/p/11268611.html
Copyright © 2011-2022 走看看