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

PAT乙级(1091 N-自守数)C语言解析

文章目录

  • 1091 N-自守数
    • 输入格式
    • 输出格式:
    • 输入样例:
    • 输出样例:
    • 代码示例

1091 N-自守数

在这里插入图片描述

输入格式

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

输出格式:

在这里插入图片描述

输入样例:

3
92 5 233

输出样例:

3 25392
1 25
No

代码示例

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>

int main() {
    // 定义一个整数 m,用于存储接下来要输入的整数的数量
    int m;
    // 从标准输入读取一个整数,并将其存储到变量 m 中
    scanf("%d", &m);

    // 开始一个循环,循环次数为 m 次,用于处理 m 个输入的整数
    for (int i = 0; i < m; i++) {
        // 定义一个整数 a,用于存储每次输入的具体整数
        int a;
        // 从标准输入读取一个整数,并将其存储到变量 a 中
        scanf("%d", &a);

        // 计算 a 的位数对应的 10 的幂,用于后续取模操作,以提取 a * a * j 的后几位
        // 这里 flag 初始化为 1 是为了后续通过循环不断乘以 10 来达到对应位数的 10 的幂
        int flag = 1;
        // 临时变量 temp 用于在不改变 a 的值的情况下,计算 a 的位数
        int temp = a;
        // 当 temp 不为 0 时,说明还有位数需要处理
        while (temp != 0) {
            // 每次循环将 flag 乘以 10,相当于 10 的幂次增加一位
            flag *= 10;
            // 将 temp 除以 10,去掉当前最低位,继续处理更高位
            temp /= 10;
        }

        // 开始一个循环,遍历 1 到 9 的整数 j,用于寻找满足条件的 j
        for (int j = 1; j < 10; j++) {
            // 计算 a 的平方乘以 j 的结果,并存储到变量 t 中
            int t = a * a * j;

            // 检查 t 对 flag 取模的结果是否等于 a
            // 取模操作可以得到 t 的后几位,这里是判断 t 的后几位是否和 a 相同
            if (t % flag == a) {
                // 如果满足条件,输出满足条件的 j 和 t 的值
                printf("%d %d\n", j, t);
                // 找到满足条件的 j 后,跳出当前内层循环
                break;
            } 
            // 当 j 等于 9 时,说明已经遍历完 1 到 9 的所有整数,都没有找到满足条件的 j
            else if (j == 9) {
                // 输出 "No" 表示没有找到符合条件的 j
                printf("No\n");
                // 跳出当前内层循环
                break;
            }
        }
    }

    // 程序正常结束,返回 0
    return 0;
}

http://www.kler.cn/a/579848.html

相关文章:

  • 日期类、Date、Calendar、IO 流、File
  • Windows简易操作(二)
  • Science Advances 多功能粘性皮肤增强了机器人与环境的交互
  • JavaScript网页设计案例:打造动态与交互性并存的用户体验
  • 【3DMAX插件】3DMAX建筑大师插件MasterBuilder使用方法
  • Rabbitmq--延迟消息
  • 深入理解C语言预处理器:从原理到实战
  • 游戏引擎学习第148天
  • 使用Python和p5.js创建的迷你游戏示例,该游戏包含多个屏幕和动画,满足在画布上显示图像、使用键盘命令移动图像
  • AXI接口总结
  • DeepSeek-进阶版部署(Linux+GPU)
  • RAG助力机器人场景理解与具身操作!EmbodiedRAG:基于动态三维场景图检索的机器人任务规划
  • 腾讯云低代码开发应用
  • Unity大型游戏开发全流程指南
  • ChātGPT开发“SolidWorks工具箱”,可建海量3D模型库,能一键画图、批量赋属性、自动出图,效率提高10倍
  • JAVA学习-练习试用Java实现“使用FP-Growth算法对大数据集中的频繁模式进行挖掘和筛选”
  • 将Exce中工作簿的多个工作表拆分为单独的Excel文件
  • 鸿蒙“一码多端”:万物互联时代的中国式创新与温度
  • 城市消防无人机系统解决技术详解
  • 蓝桥杯备赛-差分-推箱子