PAT 乙级 1091 N-自守数 (15 分)

1091 N-自守数 (15 分)

如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”。例如 3×92?2??=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守数。

本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数。

输入格式:

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

输出格式:

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

输入样例:

3
92 5 233

输出样例:

3 25392
1 25
No
 1 #include<iostream>
 2
 3 using namespace std;
 4
 5 int getDevide(int temp)
 6 {
 7     int num = 1;
 8
 9     while(temp)
10     {
11         num *= 10;
12         temp /= 10;
13     }
14
15     return num;
16 }
17
18 void deal(int temp)
19 {
20     int squTemp = temp*temp;
21
22     for(int i=1;i<10;++i)
23     {
24         if(i*squTemp%getDevide(temp) == temp)
25         {
26             cout<<i<<" "<<i*squTemp<<endl;
27             return;
28         }
29     }
30
31     cout<<"No"<<endl;
32 }
33
34 int main()
35 {
36     int M,temp;
37
38     cin>>M;
39
40     for(int i=0;i<M;++i)
41     {
42         cin>>temp;
43         deal(temp);
44     }
45
46     return 0;
47 }

原文地址:https://www.cnblogs.com/cdp1591652208/p/10227381.html

时间: 2024-10-06 00:40:58

PAT 乙级 1091 N-自守数 (15 分)的相关文章

1091 N-自守数 (15分)

如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3,而 2 的末尾两位正好是 9,所以 9 是一个 3-自守数. 本题就请你编写程序判断一个给定的数字是否关于某个 N 是 N-自守数. 输入格式: 输入在第一行中给出正整数 M(≤),随后一行给出 M 个待检测的.不超过 1000 的正整数. 输出格式: 对每个需要检测的数字,如果它是 N-自守数就在一行中输出最小的 N 和 NK?2?? 的值,以一个空格隔开:否则输出 No.注意题目保证 0

1091 N-自守数 (15 分)

// 建一个判断函数,接受两个整形的变量,再通过循环按位判断相等与否,主体函数中调用被调函数,建立一个判断变量.#include <iostream> using namespace std; bool cmp (int x, int k) { while (k != 0) { int t1 = x % 10; int t2 = k % 10; if (t1 != t2) return false; x /= 10; k /= 10; } return true; } int main() {

PAT乙级1016.部分A+B(15 分)

正整数 A 的“D?A??(为 1 位整数)部分”定义为由 A 中所有 D?A?? 组成的新整数 P?A??.例如:给定 8,D?A??=6,则 A 的“6 部分”P?A?? 是 66,因为 A 中有 2 个 6. 现给定 A.D?A??.B.D?B??,请编写程序计算 P?A??+P?B??. 输入格式: 输入在一行中依次给出 A.D?A??.B.D?B??,中间以空格分隔,其中 0. 输出格式: 在一行中输出 P?A??+P?B?? 的值. 输入样例 1: 3862767 6 1353029

7-6 求整数序列中出现次数最多的数 (15 分)

7-6 求整数序列中出现次数最多的数 (15 分) 本题要求统计一个整型序列中出现次数最多的整数及其出现次数. 输入格式: 输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数.数字间以空格分隔. 输出格式: 在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔.题目保证这样的数字是唯一的. 输入样例: 10 3 2 -1 5 3 4 3 0 3 2 输出样例: 3 4 s = input().split()[1:] count_max = 0 for i in set(s

PAT乙级:1053 住房空置率 (20分)

PAT乙级:1053 住房空置率 (20分) 题干 在不打扰居民的前提下,统计住房空置率的一种方法是根据每户用电量的连续变化规律进行判断.判断方法如下: 在观察期内,若存在超过一半的日子用电量低于某给定的阈值 e,则该住房为"可能空置": 若观察期超过某给定阈值 D 天,且满足上一个条件,则该住房为"空置". 现给定某居民区的住户用电量数据,请你统计"可能空置"的比率和"空置"比率,即以上两种状态的住房占居民区住房总套数的百分

[PAT B1036]跟奥巴马一起编程(15分)

1036 跟奥巴马一起编程(15)(15 分) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014年底,为庆祝"计算机科学教育周"正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形.现在你也跟他一起画吧! 输入格式:输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格. 输出格式:输出由给定字符C画出的正方形.但是注意到行间距比列间距大,所以为了让结果看上去更像正方形

PAT乙级-1036.跟奥巴马一起编程(15)

题解 题解: 注意"行数是列数的50%(四舍五入)" 1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int n; 6 char c; 7 cin >> n >> c; 8 int n1; 9 if (n % 2 == 0) 10 n1 = n / 2 - 2; 11 else 12 n1 = n / 2 - 1; 13 for (int i = 0; i < n;

PAT乙级 1011. A+B和C (15)

1011. A+B和C (15) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 HOU, Qiming 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测试用例,每组占一行,顺序给出A.B和C.整数间以空格分隔. 输出格式: 对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case

PAT 乙级 1074 宇宙无敌加法器 (20 分)

1074 宇宙无敌加法器 (20 分) 地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在 PAT 星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为"PAT数".每个 PAT 星人都必须熟记各位数字的进制表,例如"--0527"就表示最低位是 7 进制数.第 2 位是 2 进制数.第 3 位是 5 进制数.第 4 位是 10 进制数,等等.每一位的进制 d 或者是 0(表示十进制).或者是 [2,9] 区间内的整数.理论上这个进制