美文网首页PAT试题
PAT总结(B1016、B1026)

PAT总结(B1016、B1026)

作者: 沂雩归 | 来源:发表于2019-07-31 22:38 被阅读0次

    PAT总结(B1016、B1026)


    B1016 部分A+B

    题目

    正整数 A 的“DA(为 1 位整数)部分”定义为由 A 中所有 D​A组成的新整数 P​A例如:给定 A=3862767,D​A=6,则 A 的“6 部分”P​A是 66,因为 A 中有 2 个 6。
    现给定 A、DA、B、D​B,请编写程序计算 PA+P​B。

    \color{red}{要点}

    对整数各位数字的枚举

       int sample;
        while(sample){
            int single = sample % 10;
            sample = sample /1 0;
        }
    
    参考代码
    #include <cstdio>
    int main() {
        long long a,b,da,db;
        long long pa=0,pb=0;
        scanf("%lld %lld %lld %lld",&a,&da,&b,&db);
        while(a){
            if(a%10==da) pa=pa*10+da;
            a/=10;
        }
        while(b)
        {
            if(b%10==db) pb=pb*10+db;
            b/=10;
        }
        printf("%lld",pa+pb);
        return 0;
    }
    

    B1026 程序运行时间

    题目

    要获得一个 C 语言程序的运行时间,常用的方法是调用头文件 time.h,其中提供了 clock() 函数,可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick,即“时钟打点”。同时还有一个常数 CLK_TCK,给出了机器时钟每秒所走的时钟打点数。于是为了获得一个函数 f 的运行时间,我们只要在调用 f 之前先调用 clock(),获得一个时钟打点数 C1;在 f 执行完成后再调用 clock(),获得另一个时钟打点数 C2;两次获得的时钟打点数之差 (C2-C1) 就是 f 运行所消耗的时钟打点数,再除以常数 CLK_TCK,就得到了以秒为单位的运行时间。
    这里不妨简单假设常数 CLK_TCK 为 100。现给定被测函数前后两次获得的时钟打点数,请你给出被测函数运行的时间。

    \color{red}{要点}
    1.四舍五入问题round函数的参数必须是浮点型
    -使用round函数
    #include<cmath>
        int delta=round( (double)(t2 - t1) / 100);
    
    -直接判断
        int delta=t2-t1;
        if(delta % 100 >= 50)
            delta=delta/100+1;
        else
            delta=delta/100;
    
    2.输出格式问题位数不足时高位需要补0(%0md 位数不足m位时用0将前面补齐)
        printf("%02d:%02d:%02d",hour,minute,second);
    
    参考代码
    #include <cstdio>
    #include <cmath>
    int main() {
        int t1,t2;
        scanf("%d%d",&t1,&t2);
    //    int delta=t2-t1;
    //    if(delta%100>=50)
    //        delta=delta/100+1;
    //    else
    //        delta=delta/100;
        int delta=round((double)(t2-t1)/100);
        int hour,minute,second;
        hour=delta/3600;
        delta%=3600;
        minute=delta/60;
        second=delta%60;
        printf("%02d:%02d:%02d",hour,minute,second);
        return 0;
    }
    

    相关文章

      网友评论

        本文标题:PAT总结(B1016、B1026)

        本文链接:https://www.haomeiwen.com/subject/dnhxdctx.html