PAT甲级刷题:模拟(不断更新)

2023-11-17

目录

1001 A+B Format

1005 Spell It Right

1035 Password

1061 Dating(18/20)

1073 Scientific Notation(16/20)

 1077 Kuchiguse(17/20)


传送门:PTA | 程序设计类实验辅助教学平台

1001 A+B Format

注意每三位数字出现一个逗号是从尾端开始向前计数。

#include<bits/stdc++.h>
using namespace std;

void getSum(int a, int b) {
    string str = to_string(a + b);
    for (int i = 0; i < str.size(); i++) {
        cout<<str[i];
        if (str[i] == '-') continue;
        if (i != str.size() - 1 && (i + 1) % 3 == str.size() % 3) cout<<",";
    }
    return ;
}

int main() {
    int a, b;
    cin>>a>>b;
    getSum(a, b);
    return 0;
}


1005 Spell It Right

注意题目的输入和输出都是字符串

#include<bits/stdc++.h>
using namespace std;

vector<string> vec({"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"});

void getSum(string n) {
    int sum = 0;
    for (int i = 0; i < n.size(); i++) sum += (n[i] - '0');
    string str = to_string(sum);
    for (int i = 0; i < str.size(); ++i) {
        cout<<vec[str[i] - '0'];
        if (i != str.size() - 1) cout<<" ";
    }
}

int main() {
    string num;
    cin>>num;
    getSum(num);
    return 0;
}

1035 Password

注意从测试用例找到突破口,这道题每行包括两个字符串,每一个都要cin

#include<bits/stdc++.h>
using namespace std;

vector<string> ans;

// 若发生修改则存储字符串
void checkString(string xuhao, string n) {
    bool flag = false;
    for (int i = 0; i < n.size(); ++i) {
        if (n[i] == '1') {n[i] = '@'; flag = true;}
        else if (n[i] == '0') {n[i] = '%'; flag = true;}
        else if (n[i] == 'l') {n[i] = 'L'; flag = true;}
        else if (n[i] == 'O') {n[i] = 'o'; flag = true;}
        else continue;
    }
    if (flag) ans.push_back(xuhao + " " + n);
}

int main() {
    int N;
    string str, xuhao;    // 这里一共输入了两个字符串,注意从测试用例中找到突破口
    cin>>N;
    for (int i = 0; i < N; ++i) {
        cin>>xuhao>>str;
        checkString(xuhao, str);
    }
    if (ans.size() == 0) {
        if (N == 1) cout<<"There is 1 account and no account is modified"<<endl;
        else cout<<"There are "<<N<<" accounts and no account is modified"<<endl;
    }
    else {
        cout<<ans.size()<<endl;
        for (auto it : ans) cout<<it<<endl;
    }
    return 0;
}

1061 Dating(18/20)

没完全跑通。。差两分,今天搞不动了,回头再说

#include<bits/stdc++.h>
using namespace std;

vector<int> tranTime(string str1, string str2, string str3, string str4) {
    vector<int> res;
    bool flag = false;
    int n1 = min(str1.size(), str2.size()), n2 = min(str3.size(), str4.size());

    for (int i = 0; i < n1; ++i) {
        // cout<<flag<<endl;
        // 记录周几
        if (flag == false && str1[i] >= 'A' && str1[i] <= 'G' && str1[i] == str2[i]) {
            res.emplace_back(str1[i] - 'A');
            flag = true;    // 开始判断小时
            continue;
        }

        // 记录小时
        if (flag &&  ((str2[i] >= 'A' && str2[i] <= 'N') || (str1[i] >= '0' && str1[i] <= '9')) && str1[i] == str2[i]) {
            if (str2[i] >= 'A' && str2[i] <= 'N') res.emplace_back(str2[i] - 'A' + 10);
            else res.emplace_back(str2[i] - '0');
        }
    }

    for (int i = 0; i < n2; ++i) {
        // 记录分钟
        if (str3[i] == str4[i] && isalpha(str3[i])) {
            res.emplace_back(i);
            break;  // Assuming that there's only one matching minute character
        }
    }
    return res;
}


vector<string> date({"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"});

int main() {
    string str1, str2, str3, str4;
    cin>>str1>>str2>>str3>>str4;
    vector<int> nums = tranTime(str1, str2, str3, str4);
    // 打印日期
    cout<<date[nums[0]]<<" ";
    printf("%02d:%02d", nums[1], nums[2]);
    return 0;
}

1073 Scientific Notation(16/20)

没完全跑通

#include<bits/stdc++.h>
using namespace std;

int main() {
    string s;
    cin>>s;
    if (s[0] == '-') cout<<"-";
    int len = s.size();
    // 截取E之后的三位ss
    string ss = s.substr(len - 3);
    string sss = ss.substr(1);
    // weishu代表小数点要移动的位数
    int weishu = stoi(sss);
    // 截取E之前的不包括正负号的部分
    string str = s.substr(1, len - 5);

    // 小数点向后移动
    if (ss[0] == '+') {
        // 该情况下不用输出小数点
        if (weishu >= str.size() - 2) {
            for (char c : str) {
                if (c == '.') continue;
                cout<<c;
            }
            for (int i = 0; i < weishu - str.size() + 2; ++i) cout<<"0";
        }
        // 该情况下还是要输出小数点
        else {
            for (int i = 0; i < weishu + 2; ++i) {
                if (str[i] == '.') continue;
                cout<<str[i];
            }
            cout<<".";
            for (int i = weishu + 2; i < str.size(); ++i) cout<<str[i];
        }
    }
    else {
        cout<<"0.";
        for (int i = 1; i < weishu; ++i) cout<<"0";
        for (char c : str) {
            if (c == '.') continue;
            cout<<c;
        }
    }
    return 0;
}

 1077 Kuchiguse(17/20)

学会了输入一整行带有空格字符串的办法get.cin() + getline(cin, str)

#include<bits/stdc++.h>
using namespace std;

void getCom(string &s1, string &s2) {
    int len = min(s1.size(), s2.size());
    int i;
    for (i = 0; i < len; i++) {
        if (s1[i] != s2[i]) break;
    }
    s1 = s1.substr(0, i);
    return ;
}

int main() {
    int n;
    // cin>>n;
    scanf("%d\n", &n);
    string s, str;
    // 输入一整行带空格字符串的方法
    // cin.get();
    getline(cin, s);
    
    reverse(s.begin(), s.end());
    n--;
    while (n--) {
        cin.get();
        getline(cin, str);
        reverse(str.begin(), str.end());
        getCom(s, str);
    }
    if (s == "") cout<<"nai"<<endl;
    else {
        reverse(s.begin(), s.end());
        cout<<s<<endl;
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PAT甲级刷题:模拟(不断更新) 的相关文章

  • 编译时运算符

    有人可以列出 C 中可用的所有编译时运算符吗 C 中有两个运算符 无论操作数如何 它们的结果始终可以在编译时确定 它们是sizeof 1 and 2 当然 其他运算符的许多特殊用途可以在编译时解决 例如标准中列出的那些整数常量表达式 1 与
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • OleDbDataAdapter 未填充所有行

    嘿 我正在使用 DataAdapter 读取 Excel 文件并用该数据填充数据表 这是我的查询和连接字符串 private string Query SELECT FROM Sheet1 private string ConnectStr
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • CVE-2016-5159 脏牛内核提权

    Linux内核提权 脏牛提权漏洞 Linux内核的子系统在处理写入时复制至产生了竞争条件 恶意用户可以利用此漏洞来获得高权限 对只读内存映射进行访问 并且在提权的时候 杀毒软件并不会检测到 影响范围 Linux内核 gt 2 6 22 20
  • 利用外部程序对存储BIOS设置参数的CMOS RAM进行读取操作的可行性分析

    电脑的启动过程如下 机后主动执行BIOS程序 可以通过BIOS去设置CMOS 也可以不设置 然后BOIS会去识别操作系统引导设备的引导分区 一般也就是电脑里的硬盘中的第一个扇区 这个扇区中有分区表和主引导分区MBR 我们找到了MBR MBR
  • 【AcWing30】正则表达式匹配(动态规划)

    dp i j 表示 s 0 i 的字符串与p 0 j 的字符串是否匹配 那么有以下几个转换状态 1 p j 1 是字母 而且与 s i 1 相等 那么当前dp i j 是否匹配就依赖于dp i 1 j 1 2 p j 1 是 那么肯定与s
  • GoogleTest安装和搭建自动测试环境

    一 GoogleTest安装 1 下载GoogleTest源代码 sudo apt get install libgtest dev 2 编译源代码 1 安装完源代码后 继续在终端中输入 cd usr src gtest切换到源码存放的地方
  • 高斯分布的极大似然估计

    本文是关于 coursera 上 Robotics Estimation and Learning 课程的笔记 前面通过一个例子简单地介绍了极大似然估计的意思 现在来对高斯分布做极大似然估计 一维高斯分布 概率密度函数 一维高斯分布 Gau
  • dialog弹窗表单居中

    内容居中只需要设置样式就可以了 不用太复杂了 el dialog body display inline block
  • Java操作json的通用类

    package com baiyyy polabs util json import java text ParseException import java util ArrayList import java util Date imp
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • 云服务器+云数据库+WordPress搭建网站

    本文已在个人网站上发表 地址 http www bookmonster club 一 硬件环境 1 本地主机 window10系统 2 腾讯云服务器 Windows Server 2016 数据中心版 64位中文版 3 腾讯云数据库 Cyn
  • 知识越分享,收获越多。

    好处一 分享能更快地提升自己 分享知识对人是有考验的 因为做分享 首先要在脑袋里回顾 总结这个知识点 然后通过语言或文字表达出来 这个过程考验了对知识的掌握程度 可以增强我们的思考能力 语言表达能力和文字表达能力 很多时候 我们以为自己知道
  • ./configure: error: C compiler cc is not found

    CentOS 执行 configure 编译命令 时出现 checking for C compiler not found 解决方法 执行以下命令 yum y install gcc gcc c autoconf automake mak
  • dva中model中effect中获取state中的数据

    model export default modelExtend pageModel namespace storeIf state id effects update payload call put select const data
  • 如何快速确定程序的入口

    前言 在阅读代码时 知道程序的入口十分重要 这有助于快速理清程序的逻辑框架 我们找到程序入口后 顺着代码的执行顺序来阅读代码 可以比较容易的理解代码 这里说的代码是编译后成为可执行程序的代码 在linux中就是elf格式 被编译成可执行程序
  • 【学习笔记】模糊控制算法

    本文目录 0 前言 1 概述 2 模糊集合 2 1 集合和论域 2 2 模糊集合的概念 2 3 模糊集合的表示方式 2 4 模糊集合的运算 3 模糊关系与模糊关系合成 3 1 笛卡尔积 3 2 关系与模糊关系 3 3 模糊关系的运算 3 4
  • 自动生成代码的配置generator.properties

    u4EE3 u7801 u751F u6210 u5668 uFF0C u914D u7F6E u4FE1 u606F u5305 u540D package com zscat cms u4F5C u8005 author zscat E
  • python使用scipy.optimize的fsolve求解线性(非线性)方程

    文章目录 求解线性方程 求解非线性方程 求解线性方程 对于固定的线性方程 a 2b 0 4a 5b 0 求 a 与 b 使用如下方法 import scipy optimize as opt import numpy as np def f
  • 【JDK版本常见报错及其解决,Java基础知识点百度云

    J2SE 8 52 J2SE 7 jdk1 7 51 J2SE 6 0 jdk1 6 50 J2SE 5 0 jdk1 5 49 JDK 1 4 48 JDK 1 3 47 JDK 1 2 46 JDK 1 1 45 那怎么办 好办 把项目
  • 【链表】环型链表找环的起点

    力扣 142 环型链表 II 题目 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 1 先确定链表存在环 使用快慢指针法 分别定义 fast 和 slow 指针 从头结点出发 fast 指针每次
  • FFmpeg中的常见结构体

    代码基于FFmpeg5 0 1 目录 FFFormatContext AVFormatContext AVIOContext FFIOContext URLContext URLProtocol AVInputFormat FFStream
  • PAT甲级刷题:模拟(不断更新)

    目录 1001 A B Format 1005 Spell It Right 1035 Password 1061 Dating 18 20 1073 Scientific Notation 16 20 1077 Kuchiguse 17