博客
关于我
PAT乙级真题 1091 N-自守数 C++实现
阅读量:615 次
发布时间:2019-03-13

本文共 1685 字,大约阅读时间需要 5 分钟。

为了解决这个问题,我们需要判断给定的数字是否是某个 N 的 N-自守数。N-自守数的定义是:某个数 K 满足 N × K² 的结果的末尾几位数等于 K。

方法思路

  • 输入处理:读取输入的正整数 M 和接下来的 M 个待检测的数字。
  • 遍历 N 的值:对于每个待检测的数字 K,遍历 N 的值从 1 到 9。
  • 计算末尾几位数:对于每个 N,计算 N × K² 的结果,并提取其末尾几位数。末尾几位数的位数等于 K 的位数。
  • 比较末尾几位数:将计算得到的末尾几位数转换为字符串,补零到与 K 相同的位数,比较是否与 K 的字符串形式相同。
  • 输出结果:如果找到满足条件的 N,输出 N 和对应的 N × K² 的结果;否则输出 "No"。
  • 解决代码

    #include 
    #include
    using namespace std;int main() { int m; cin >> m; for (int k = 0; k < m; ++k) { int K; cin >> K; int d = 0; int temp = K; while (temp > 0) { d++; temp /= 10; } string K_str = to_string(K); bool found = false; int min_N = -1; long long min_product = -1; for (int N = 1; N <= 9; ++N) { long long product = (long long)N * K * K; int mod = 1; for (int i = 0; i < d; ++i) { mod *= 10; } int last_part = product % mod; char buffer[d + 1]; snprintf(buffer, d + 1, "%0" + string(d, '0') + "%d", last_part); string last_str(buffer); if (last_str == K_str) { found = true; min_N = N; min_product = product; break; } } if (found) { cout << min_N << " " << min_product << endl; } else { cout << "No" << endl; } } return 0;}

    代码解释

  • 读取输入:首先读取输入的 M 值,然后读取 M 个待检测的数字。
  • 计算位数:对于每个待检测的数字 K,计算其位数 d。
  • 遍历 N 的值:从 1 到 9 遍历每个 N,计算 N × K² 的结果。
  • 计算末尾几位数:使用模运算提取 N × K² 的末尾 d 位,并将其转换为字符串。
  • 比较末尾几位数:将末尾几位数补零到 d 位,比较是否与 K 的字符串形式相同。
  • 输出结果:如果找到满足条件的 N,输出结果;否则输出 "No"。
  • 这种方法确保了我们能够高效地判断每个数字是否是某个 N 的 N-自守数,满足了题目的要求。

    转载地址:http://lymaz.baihongyu.com/

    你可能感兴趣的文章
    Kubernetes 无法查询到并且无法删除pod实例的排查过程
    查看>>
    android中button修改不了背景颜色
    查看>>
    (网络安全)主动信息收集 操作系统识别
    查看>>
    github 入门
    查看>>
    温故知新,.Net Core遇见Consul(HashiCorp),实践分布式服务注册与发现
    查看>>
    社区医疗app-Ui设计
    查看>>
    HTML 表单验证
    查看>>
    mysql时间为0000-00-00 00:00:00时,程序读取错误
    查看>>
    ubuntu System program problem detected
    查看>>
    使用ivx图表组件的经验总结
    查看>>
    17场演讲,500+嘉宾 |「观远2020智能决策峰会暨产品发布会」看点先知道
    查看>>
    一个简单的游戏框架[汇总]
    查看>>
    免费好用的证件扫描仪-扫描全能王
    查看>>
    面试题5:(事务管理) ACID 是什么?
    查看>>
    10.Mybatis执行流程
    查看>>
    Http状态码
    查看>>
    通信过程图
    查看>>
    maven核心
    查看>>
    使用maven
    查看>>
    依赖范围scope
    查看>>