当前位置: 首页 > news >正文

PAT甲级(Advanced Level) Practice 1023 Have Fun with Numbers

原题

1023 Have Fun with Numbers - PAT (Advanced Level) Practice

题目大意

输入一个不大于20位的数,判断该数乘2后所用的每个数字数量和原数是否一样。

解题思路

因为这个数最大可能达到20位,超出了long long的范围,因此我们考虑大数乘法,用vector数组倒序存储该数。用数组digit[]统计每个数字出现的次数,最后将乘2的结果中每个数字统计一遍即可。

代码(c++)
#include <bits/stdc++.h>
#include <vector>

using namespace std;

string s;
vector<int> num;
int digit[10] = {0};

vector<int> mul(vector<int> num, int k) {  // 大数乘小数
    vector<int> res;
    int count = 0;                         // count表示进位
    for(int i : num) {
        int x = i * k + count;
        count = x / 10;
        res.push_back(x % 10);
    }
    if(count) res.push_back(count);        // 若最后还有进位,补上
    return res;
}

bool check(vector<int> num2) {             // 统计每个数字出现次数是否相等
    for(int i : num2) digit[i]--;          // digit所有都为0时表示全部相等
    for(int i :digit) if(i) return false;
    return true;
}

int main() {
    cin >> s;
    for(int i = s.size() - 1; i >= 0; i--) {
        int t = s[i] - '0';
        digit[t]++;
        num.push_back(t);
    }
    vector<int> num2 = mul(num, 2);
    if(check(num2)) puts("Yes");
    else puts("No");
    for(int i = num2.size() - 1; i >= 0; i--) cout << num2[i];
}

http://www.dtcms.com/a/73919.html

相关文章:

  • LeetCode 1005. K 次取反后最大化的数组和 java题解
  • C语言 —— 此去经年梦浪荡魂音 - 深入理解指针(卷二)
  • SpringBoot3+Druid+MybatisPlus多数据源支持,通过@DS注解配置Service/Mapper/Entity使用什么数据源
  • Windows11 新机开荒(二)电脑优化设置
  • C++ 类和对象 友元 内部类 this指针 默认成员函数 初始化列表……
  • Pandas DataFrame:数据分析的利器
  • 14 结构体
  • WebSocket和长轮询
  • 【操作系统】Ch6 文件系统
  • 【最后203篇系列】015 几种消息队列的思考
  • ORA-00600错误的深度剖析:如何避免与解决?
  • 蓝桥杯宝石,考察数学。考察公式推导能力
  • 设计模式(行为型)-命令模式
  • 【MySQL】MySQL数据存储机制之存储引擎
  • Vim 编辑器-实现基础跳转
  • MCP 开放协议
  • 55-交换机堆叠
  • P4924 [1007] 魔法少女小Scarlet
  • 模板初阶:
  • 判断一个数是否是质数(素数)
  • 【递归与动态规划(DP) C/C++】(1)递归 与 动态规划(DP)
  • 图书管理借阅系统(豪华版)
  • python二级每日十题(1)
  • css盒子模型第二章(margin padding border content)
  • 从零开始 | C语言基础刷题DAY3
  • 深入解析Hosts文件:从原理到实战应用(文末附Qwins下载)
  • Couldn‘t install PSEXESVC service: 拒绝访问。
  • 宇树科技纯技能要求总结
  • 大话数据结构第一章,数据结构绪论笔记
  • 项目实战系列:基于瑞萨RA6M5构建多节点OTA升级-系统设计<一>