PAT试题

PAT总结(B1016、B1026)

2019-07-31  本文已影响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;
}

上一篇下一篇

猜你喜欢

热点阅读