Basic Level 1091 N-自守数 (15分)

2023-11-04

题目

如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3 × 9 2 2 = 25392 3×92^2=25392 3×922=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数。
本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。

输入格式:

输入在第一行中给出正整数 M(≤20),随后一行给出 M 个待检测的、不超过 1000 的正整数。

输出格式:

对每个需要检测的数字,如果它是 N-自守数就在一行中输出最小的 N 和 N K 2 NK^2 NK2的值,以一个空格隔开;否则输出 No。注意题目保证 N<10。

输入样例:

3
92 5 233

输出样例:

3 25392
1 25
No

思路分析:

  1. 定义一个fun()实现功能,然后从1-9枚举,判断是否存在n,然后输出。

代码:

#include <bits/stdc++.h>
int fun(int n, int k){
    int count = 0, sum = k, sum_k = 0, n_2 = k * k * n;
    do{
        count++;
        sum /= 10;
    }while(sum);
    sum_k = n_2 % (int)pow(10, count);
    if(sum_k == k) return 1;
    else return 0;
}
using namespace std;
int main(){
    int m, temp;
    scanf("%d", &m);
    while(m--){
        scanf("%d", &temp);
        int flag = 0;
        for(int k = 1; k < 10; k++){
            if(fun(k, temp)){
                printf("%d %d\n", k, k * temp * temp);
                flag = 1;
                break;
            }
        }
        if(!flag) printf("No\n");
    }
    return 0;
}

附柳神的代码

从1-9枚举,判断是否存在N。通过to_string把乘积转成字符串,再通过substr取末尾子串比较即可

#include <iostream>
#include <string>
using namespace std;
int main() {
    int m;
    cin >> m;
    while (m--) {
        int k, flag = 0;
        cin >> k;
        for (int n = 1; n < 10; n++) {
            int mul = n * k * k;
            string smul = to_string(mul), sk = to_string(k);
            string smulend = smul.substr(smul.length() - sk.length());
            if (smulend == sk) {
                printf("%d %d\n", n, mul);
                flag = 1;
                break;
            }
        }
        if (flag == 0) printf("No\n");
    }
    return 0;
}

PAT_BasicLevel

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

Basic Level 1091 N-自守数 (15分) 的相关文章

  • 代码生成器Mybatis-Generator使用教程

    引入插件 Mybatis Generator的运行方式有很多种 基于mybatis generator core x x x jar和其XML配置文件 通过命令行运行 通过Ant的Task结合其XML配置文件运行 通过Maven插件运行 通

随机推荐

  • Java插入排序

    1 直接插入排序 将一个记录值在已排序的数组找到合适的位置进行插入 就像第一次上体育课时 老师会让每位同学先排成一队 然后再让每个同学按照从大到小 小到大 的规则 找到自己的位置 2 插入排序动图 这是插入排序的动图显示 3 Java实现
  • 信号分解(如 EMD,ITD)应用于时间序列预测时是否存在问题

    类似EMD的信号分解方法用于预测前的预处理是否存在原理上问题 很多学者利用种种信号分解方法来分解信号后 再进行时间序列预测 常用方法有EMD Empirical Mode Decomposition 与 ITD Intrinsic Time
  • 数据分析与可视化 --aws云平台

    数据分析与可视化 项目一 搭建AWS数据分析开发环境 1 安装Notebook开发环境 Step1 下载支持Notebook 的开发环境 远程登录到Amazon EC2实例后 在命令行中输入并执行 wget https repo anaco
  • 15 个你应该知道的JavaScript 对象基础知识

    在今天的文章中 我们将一起来了解 JavaScript 中有关对象的一些最重要的知识概念 1 对象字面量是创建对象的最简单方式 创建对象的最简单方法是使用对象字面量 我们在花括号 中定义了一组属性 用逗号分隔 下面是一个例子 const g
  • 【ECS】阿里云ECS安装配置各种环境

    目录 ECS云服务器新手上路 快速配置Linux云服务器 远程连接VNC 配置Apache服务 解析网站域名 快速搭建LNMP环境 Linux Nginx MySQL PHP 安装并配置MySQL 5 7 41 数据库优化案例 安装Ngin
  • linux nginx启动 重启 关闭命令

    linux nginx启动 重启 关闭命令 新 https blog csdn net molingduzun123 article details 51850925 不用重启 让配置生效 sudo service nginx reload
  • 查看计算机密码设置时间,XP系统怎么查看电脑密码的设定时间?注意我只要查看设定时间!...

    用以下方法可实现对电脑使用时间的控制 比如 需要建立一个jiale的用户账号 密码为 123 登录权限从星期一到星期五的早上八点到晚上十点和双休日的晚上七点到晚上九点 time参数 开始 运行 cmd 1 12小时制可键入如下命令 net
  • 福禄克DSX2-5000测试参数(+PoE)、(+All)代表什么?

    福禄克铜缆认证测试仪DSX2 5000 限值界面中带 All 后缀 并好奇它究竟代表了什么 以及你为什么和应当在何时选择它 当你选择了一个后缀带有 PoE 或 All 的测试限值 从根本上来说你就是增加了一个ANSI TIA或ISO IEC
  • lua中点号和冒号在定义方法和调用方法的区别

    local a x 2 function a foo1 b self x b end a foo1 5 print a x 报错 attempt to index global self a nil value function a foo
  • 观察者模式(Observer) Java实现

    观察者模式 观察者模式 Observer 的定义 观察者模式是对象的行为模式 又叫发布 订阅 Publish Subscribe 模式 模型 视图 Model View 模式 源 监听器 Source Listener 模式或从属者 Dep
  • HttpClient4 Post XML到一个服务器上

    现在网上介绍的HttpClient基本上全是3 x版本的内容 HttpClient4的API变化相对3已经变化很大 对HttpClient4做了简单的研究后 完成了一个HttpClient4 Post XML功能 对于POST方式 最先想到
  • 解决camera1 onPreviewFrame()会阻塞UI线程

    转自 https blog csdn net qq 31939617 article details 86360335 https www huaweicloud com zhishi arc 13664997 html 注意 onPrev
  • 二分法查找(Java)

    需求 给定一个 n 个元素有序的 升序 整型数组 nums 和一个目标值 target 写一个函数搜索 nums 中的 target 如果目标值存在返回下标 否则返回 1 示例 输入 nums 1 0 3 5 9 12 target 9 输
  • 单链表和顺序表的初始化及插入、删除、获取元素操作实现

    1 声明一个节点类 节点类 public class Node int data 数据域 Node next 指针域 public Node int data this data data public Node 2 不带头结点的单链表实现
  • vue3组件通信方式 二

    目录 ref与 parent ref 在父组件挂载完毕获取组件实例 parent可以获取某一个组件的父组件实例VC 案例 provide与inject provide提供数据 inject 获取数据 案例 pinia 大仓库 注册store
  • 42黑马QT笔记之Linux下Tcp/Udp通信过程

    42黑马QT笔记之Linux下Tcp Udp通信过程 1 Linux下Tcp通信过程 1 第一次握手 执行connect 2 第二次握手 accept 返回 3 第三次握手 connect 返回 4 共有三个套接字 客户端1个fd 服务端一
  • c++11增加的变参数模板,今天总算整明白了

    本篇文章介绍一下c 11中增加的变参数模板template
  • C运行时库(C Run-time Library)详解

    一 什么是C运行时库 1 C运行时库就是 C run time library 是 C 而非 C 语言世界的概念 取这个名字就是因为你的 C 程序运行时需要这些库中的函数 2 C 语言是所谓的 小内核 语言 就其语言本身来说很小 不多的关键
  • AIX系统文件压缩解压缩及性能诊断常用命令

    AIX系统文件压缩解压缩及性能诊断常用命令 磁带设备 顺序读取 文件类型 dev rmtx dev rmtx 1 dev rmtx 2 掌握 zip tar tape archive 保留原有权限 没有压缩 只是打包 创建 tar cvf
  • Basic Level 1091 N-自守数 (15分)

    题目 如果某个数 K 的平方乘以 N 以后 结果的末尾几位数等于 K 那么就称这个数为 N 自守数 例如 3 9 2 2 25392