旅游网站建设规模iis网站目录权限设置
文章目录
- 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,用于寻找满足条件的 jfor (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 的所有整数,都没有找到满足条件的 jelse if (j == 9) {// 输出 "No" 表示没有找到符合条件的 jprintf("No\n");// 跳出当前内层循环break;}}}// 程序正常结束,返回 0return 0;
}