pat模拟习题集,字符串处理习题集

By admin in 4858.com on 2019年4月11日

B十0一.害死人不偿命的(三n+1)推测(壹伍)

B拾0一.害死人不偿命的(三n+一)估计(一伍)

PAT/不难模拟练习集(①),pat模拟习题集

B1001.害死人不偿命的(3n+1)臆想 (15)

Description:

卡拉兹(Callatz)猜想:

对别的3个本来数n,假如它是偶数,那么把它砍掉5/10;借使它是奇数,那么把(三n+一)砍掉5/10。那样直白反复拿下去,最终一定在某一步获得n=1。卡拉兹在1947年的世界科学家大会上公布了那么些臆度,故事当时澳大利亚国立大学师生齐动员,拼命想表明这些貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(三n+一),以至于有人说那是二个阴谋,卡拉兹是在故意延缓美利坚联邦合众国数学界教学与科学钻探的开展……

大家前几日的题材不是认证卡拉兹预计,而是对给定的任1不超过一千的正整数n,不难地数一下,供给某个步(砍几下)才能取得n=一?

Input:

每种测试输入包蕴一个测试用例,即给出自然数n的值。

Output:

输出从n总计到壹供给的步数。

Sample Input:

3

Sample Output:

5

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int n, step = 0;
 8     scanf("%d", &n);
 9 
10     while(n != 1) {
11         if(n%2 == 0) {
12             n /= 2;
13         } else {
14             n = (3*n+1)/2;
15         }
16         step++;
17     }
18 
19     printf("%d\n", step);
20 
21     return 0;
22 }

 

B十32. 推土机技术哪家强 (20)

Description:

为了用真情评释挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你依照比赛结果总计出技术最强的特别高校。

Input:

输入在第贰行提交不超越拾5的正整数N,即参加比赛人数。随后N行,每行给出一个人参加比赛者的新闻和战绩,包含其所代表的学府的编号(从1方始接连编号)、及其比赛成绩(百分制),中间以空格分隔。

Output:

在1行中提交总得分最高的母校的号子、及其总分,中间以空格分隔。标题保险答案唯1,未有不分畛域。

Sample Input:

6
3 65
2 80
1 100
2 70
3 40
3 0

Sample Output:

2 150

 1 #include <cstdio>
 2 
 3 #define MaxSize 100010
 4 
 5 int school[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int n, schID, score;
12     scanf("%d", &n);
13     for(int i=0; i<n; ++i) {
14         scanf("%d %d", &schID, &score);
15         school[schID] += score;
16     }
17 
18     int ID, maxscore = -1;
19     for(int i=1; i<=n; ++i) {
20         if(school[i] > maxscore) {
21             ID = i;
22             maxscore = school[i];
23         }
24     }
25 
26     printf("%d %d\n", ID, maxscore);
27 }

 

B1011. A+B和C (15)

Description:

给定区间[-231,
231]内的三个整数A、B和C,请判断A+B是不是超过C。

Input:

输入第二行提交正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占壹行,顺序给出A、B和C。整数间以空格分隔。

Output:

对每组测试用例,在一行中输出“Case #X: true”假诺A+B>C,不然输出“Case
#X: false”,当中X是测试用例的数码(从1初始)。

Sample Input:

4
1 2 3
2 3 4
2147483647 0 2147483646
0 -2147483648 -2147483647

Sample Output:

Case #1: false
Case #2: true
Case #3: true
Case #4: false

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int T;
 8     long long a, b, c;
 9     scanf("%d", &T);
10     for(int i=1; i<=T; ++i) {
11         scanf("%lld %lld %lld", &a, &b, &c);
12         if(a+b > c) {
13             printf("Case #%d: true\n", i);
14         } else {
15             printf("Case #%d: false\n", i);
16         }
17     }
18 
19     return 0;
20 }

 

B1016. 部分A+B (15)

pat模拟习题集,字符串处理习题集。Description:

正整数A的“DA(为1个人整数)部分”定义为由A中全体DA结合的新整数PA。例如:给定A
= 3862767,DA =
6,则A的“6部分”PA是66,因为A中有2个6。

现给定A、DA、B、DB,请编写程序计算PA +
PB

Input:

输入在一行中种种给出A、DA、B、DB,中间以空格分隔,当中0
< A, B < 1010

Output:

在一行中输出PA + PB的值。

Sample Input1:

3862767 6 13530293 3

Sample Output1:

399

Sample Input2:

3862767 1 13530293 8

Sample Output2:

0

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int Da, Db;
 8     long long pA = 0, pB = 0, A, B;
 9     scanf("%lld %d %lld %d", &A, &Da, &B, &Db);
10 
11     while(A != 0) {
12         if(A%10 == Da) {
13             pA = pA*10+Da;
14         }
15         A /= 10;
16     }
17     while(B != 0) {
18         if(B%10 == Db) {
19             pB = pB*10+Db;
20         }
21         B /= 10;
22     }
23 
24     printf("%lld\n", pA+pB);
25 
26     return 0;
27 }

 

B十二6. 程序运维时间 (1伍)

Description:

要取得1个C语言程序的运作时刻,常用的格局是调用头文件time.h,在那之中提供了clock()函数,能够捕捉从程序先河运转到clock()被调用时所开销的时刻。这么些时刻单位是clock
tick,即“机械钟打点”。同时还有一个常数CLK_TCK,给出了机器石英钟每秒所走的钟表打点数。于是为了拿走叁个函数f的运作时刻,我们假若在调用f以前先调用clock(),获得三个闹钟打点数C1;在f执行到位后再调用clock(),获得另一个时钟打点数C二;一次获得的钟表打点数之差(C二-C一)便是f运营所花费的钟表打点数,再除以常数CLK_TCK,就获得了以秒为单位的周转时刻。

此处不要紧简要就算常数CLK_TCK为100。现给定被测函数前后四遍获得的钟表打点数,请您付出被测函数运维的时光。

Input:

输入在一行中逐壹给出三个整数C一和C一。注意四回获得的机械钟打点数肯定不均等,即C1< C2,并且取值在[0, 107]。

Output:

在1行中输出被测函数运转的光阴。运营时刻必须依据“hh:mm:ss”(即几位的“时:分:秒”)格式输出;不足1秒的大运四舍5入到秒。

Sample Input:

123 4577973

Sample Output:

12:42:59

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int C1, C2;
 8     scanf("%d %d", &C1, &C2);
 9 
10     int ans = C2 - C1;
11     if(ans%100 < 50) {
12         ans /= 100;
13     } else {
14         ans = ans/100+1;
15     }
16 
17     printf("%02d:%02d:%02d\n", ans/3600, ans%3600/60, ans%60);
18 
19     return 0;
20 }

 

B1008. 数组元素循环右移难题 (20)

Description:

二个数组A中存有N(N>0)个整数,在不容许行使其它数组的前提下,将每种整数循环向右移M(M>=0)个职位,即将A中的数据由(A0A1……AN-1)变换为(AN-M ……
AN-1 A0 A1……AN-M-1)(最终M个数循环移至最前边的M个地点)。假若急需思虑程序移动数据的次数尽量少,要如何规划活动的方法?

Input:

每一种输入包罗一个测试用例,第一行输入N (
一<=N<=100)、M(M>=0);第一行输入N个整数,之间用空格分隔。

Output:

在1行中输出循环右移M位将来的平头体系,之间用空格分隔,种类结尾不能有多余空格。

Sample Input:

6 2
1 2 3 4 5 6

Sample Output:

5 6 1 2 3 4

 1 #include <cstdio>
 2 
 3 #define MaxSize 110
 4 
 5 int List[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, M, counter = 1;
12     scanf("%d %d", &N, &M);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &List[i]);
15     }
16 
17     M %= N;
18     for(int i=N-M; i<N; ++i) {
19         if(counter != N) {
20             printf("%d ", List[i]);
21         } else {
22             printf("%d\n", List[i]);
23         }
24         counter++;
25     }
26     for(int i=0; i<N-M; ++i) {
27         if(counter != N) {
28             printf("%d ", List[i]);
29         } else {
30             printf("%d\n", List[i]);
31         }
32         counter++;
33     }
34 
35     return 0;
36 }

 

B1012. 数字分类 (20)

Description:

定一层层正整数,请按供给对数字实行分拣,并出口以下四个数字:

  • A壹 = 能被5整除的数字中有所偶数的和;
  • A二 =
    将被五除后余一的数字按给出顺序举办交错求和,即总括n一-n2+n叁-n四…;
  • A3 = 被伍除后余二的数字的个数;
  • 奥迪A肆 = 被伍除后余三的数字的平平均数量,精确到小数点后一人;
  • A伍 = 被5除后余四的数字中最大数字。

Input:

各类输入包罗3个测试用例。种种测试用例先给出3个不超越一千的正整数N,随后给出N个不超过一千的待分类的正整数。数字间以空格分隔。

Output:

对给定的N个正整数,按标题需要总结A壹~A伍并在一行中各种输出。数字间以空格分隔,但行末不得有多余空格。

若当中某1类数字不设有,则在对应岗位输出“N”。

Sample Input1:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

Sample Output1:

30 11 2 9.7 9

Sample Input2:

8 1 2 4 5 6 7 9 16

Sample Output2:

N 11 2 N 9

 1 #include <cstdio>
 2 
 3 #define MaxSize 5
 4 
 5 int List[MaxSize], ans[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, temp;
12     scanf("%d", &N);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &temp);
15         if(temp%5 == 0) {
16             if(temp%2 == 0) {
17                 ans[0] += temp;
18                 List[0]++;
19             }
20         } else if(temp%5 == 1) {
21             if(List[1]%2 == 0) {
22                 ans[1] += temp;
23             } else {
24                 ans[1] -= temp;
25             }
26             List[1]++;
27         } else if(temp%5 == 2) {
28             List[2]++;
29         } else if(temp%5 == 3) {
30             ans[3] += temp;
31             List[3]++;
32         } else {
33             if(temp > ans[4]) {
34                 ans[4] = temp;
35             }
36             List[4]++;
37         }
38     }
39 
40     if(List[0] == 0) {
41         printf("N ");
42     } else {
43         printf("%d ", ans[0]);
44     }
45     if(List[1] == 0) {
46         printf("N ");
47     } else {
48         printf("%d ", ans[1]);
49     }
50     if(List[2] == 0) {
51         printf("N ");
52     } else {
53         printf("%d ", List[2]);
54     }
55     if(List[3] == 0) {
56         printf("N ");
57     } else {
58         printf("%.1f ", (double)ans[3]/List[3]);
59     }
60     if(List[4] == 0) {
61         printf("N\n");
62     } else {
63         printf("%d\n", ans[4]);
64     }
65 
66     return 0;
67 }

 

B100一.害死人不偿命的(3n+一)臆想 (一五) Description: 卡拉兹(Callatz)猜测:
对别的3个当然数n,借使它是…

B十0六.
换个格式输出整数

Description:

Description:

Description:

卡拉兹(Callatz)猜想:

卡拉兹(Callatz)猜想:

让我们用字母B来代表“百”、字母S表示“十“,用“12…n”来代表个位数字n,换个格式来输出任三个不超过3个人的正整数。例如23四相应被输出为BBSSS123四,因为它有2个“百”、2个“10”、以及个位的四。

对任何三个理所当然数n,如若它是偶数,那么把它砍掉百分之五十;假如它是奇数,那么把(3n+一)砍掉一半。那样一向反复拿下去,最终必将在某一步获得n=壹。卡拉兹在一九四七年的社会风气科学家大会上揭橥了这一个估摸,旧事当时澳大利亚国立高校师生齐动员,拼命想表明这么些1般很傻很天真的命题,结果闹得学生们无心学业,一心只证(三n+一),以至于有人说那是1个阴谋,卡拉兹是在有意延缓美利坚合众国数学界教学与科学商讨的展开……

对别的一个自然数n,倘使它是偶数,那么把它砍掉十二分之5;要是它是奇数,那么把(三n+一)砍掉二分之一。这样一贯反复拿下去,最终必将在某一步获得n=一。卡拉兹在一94柒年的社会风气科学家大会上宣布了那一个估量,传说当时耶路撒冷希伯来学院师生齐动员,拼命想注解那一个一般很傻很天真的命题,结果闹得学生们无心学业,一心只证(三n+1),以至于有人说那是二个阴谋,卡拉兹是在有意延缓美利坚合营国数学界教学与科学研讨的进展……

Input:

大家明天的难点不是印证卡拉兹猜度,而是对给定的任一不抢先1000的正整数n,简单地数一下,须要有些步(砍几下)才能收获n=一?

咱俩明天的题材不是认证卡拉兹估摸,而是对给定的任1不超过一千的正整数n,简单地数一下,须要多少步(砍几下)才能博取n=一?

各种测试输入包涵1个测试用例,给出正整数n。

Input:

Input:

Output:

每一种测试输入包涵三个测试用例,即给出自然数n的值。

种种测试输入包含1个测试用例,即给出自然数n的值。

每一个测试用例的出口占1行,用规定的格式输出n。

Output:

Output:

Sample
Input1:

输出从n总括到一急需的步数。

输出从n总计到一内需的步数。

234

Sample
Input:

Sample
Input:

Sample
Output1:

3

3

BBSSS1234

Sample
Output:

Sample
Output:

Sample
Input2:

5

5

23

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int n, step = 0;
 8     scanf("%d", &n);
 9 
10     while(n != 1) {
11         if(n%2 == 0) {
12             n /= 2;
13         } else {
14             n = (3*n+1)/2;
15         }
16         step++;
17     }
18 
19     printf("%d\n", step);
20 
21     return 0;
22 }
 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int n, step = 0;
 8     scanf("%d", &n);
 9 
10     while(n != 1) {
11         if(n%2 == 0) {
12             n /= 2;
13         } else {
14             n = (3*n+1)/2;
15         }
16         step++;
17     }
18 
19     printf("%d\n", step);
20 
21     return 0;
22 }

Sample
Output2:

 

 

SS123

B十32.
挖掘机技术哪家强 (20)

B103二.
挖掘机技术哪家强 (20)

 1 #include <cstdio> 2  3 int main() 4 { 5     int n; 6     scanf("%d", &n); 7  8     int num = 0, ans[5]; 9     while(n != 0) {10         ans[num++] = n%10;11         n /= 10;12     }13 14     for(int i=num-1; i>=0; --i) {15         if(i == 2) {16             for(int j=0; j<ans[i]; ++j)17                 printf("B");18         } else if(i == 1) {19             for(int j=0; j<ans[i]; ++j)20                 printf("S");21         } else {22             for(int j=1; j<=ans[i]; ++j)23                 printf("%d", j);24         }25     }26 27     return 0;28 }

Description:

Description:

B10二一.
个位数计算

为了用事实表明挖掘机技术到底哪家强,PAT协会了一场挖掘机技能大赛。现请你依据比赛结果统计出技术最强的不行学校。

为了用真情注明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你依据比赛结果计算出技术最强的11分高校。

Description:

Input:

Input:

给定1个k位整数N =
dk-一*10k-1 + … + d1*拾1 + d0 (0<=di<=九, i=0,…,k-1,
dk-一>0),请编写程序计算各样分裂的个位数字出现的次数。例如:给定N =
拾031一,则有二个0,2个壹,和3个叁。

输入在第贰行提交不超过十5的正整数N,即参加比赛人数。随后N行,每行给出一个上党参赛者的音讯和成就,包蕴其所表示的学堂的号码(从一开首接连编号)、及其竞赛战表(百分制),中间以空格分隔。

输入在第3行提交不当先拾5的正整数N,即参加比赛人数。随后N行,每行给出三个鬼盖赛者的消息和培育,包蕴其所代表的院所的编号(从一伊始接连编号)、及其竞技成绩(百分制),中间以空格分隔。

Input:

Output:

Output:

各样输入包括1个测试用例,即贰个不超越一千位的正整数N。

在1行中提交总得分最高的学校的号码、及其总分,中间以空格分隔。标题保证答案唯一,未有一碗水端平。

在一行中付出总得分最高的院所的数码、及其总分,中间以空格分隔。标题保障答案唯一,未有同等对待。

Output:

Sample
Input:

Sample
Input:

对N中每一种不一致的个位数字,以D:M的格式在壹行中输出该位数字D及其在N中出现的次数M。供给按D的升序输出。

6
3
65
2
80
1
100
2
70
3
40
3
0

6
3
65
2
80
1
100
2
70
3
40
3
0

Sample
Input:

Sample
Output:

Sample
Output:

100311

2
150

2
150

Sample
Output:

 1 #include <cstdio>
 2 
 3 #define MaxSize 100010
 4 
 5 int school[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int n, schID, score;
12     scanf("%d", &n);
13     for(int i=0; i<n; ++i) {
14         scanf("%d %d", &schID, &score);
15         school[schID] += score;
16     }
17 
18     int ID, maxscore = -1;
19     for(int i=1; i<=n; ++i) {
20         if(school[i] > maxscore) {
21             ID = i;
22             maxscore = school[i];
23         }
24     }
25 
26     printf("%d %d\n", ID, maxscore);
27 }
 1 #include <cstdio>
 2 
 3 #define MaxSize 100010
 4 
 5 int school[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int n, schID, score;
12     scanf("%d", &n);
13     for(int i=0; i<n; ++i) {
14         scanf("%d %d", &schID, &score);
15         school[schID] += score;
16     }
17 
18     int ID, maxscore = -1;
19     for(int i=1; i<=n; ++i) {
20         if(school[i] > maxscore) {
21             ID = i;
22             maxscore = school[i];
23         }
24     }
25 
26     printf("%d %d\n", ID, maxscore);
27 }

0:2
1:3
3:1

 

 

 1 #include <cstdio> 2 #include <cstring> 3  4 #define MaxSize 1010 5 char List[MaxSize]; 6  7 int main() 8 { 9     //freopen("E:\\Temp\\input.txt", "r", stdin);10 11     gets;12 13     int len = strlen, ans[10] = {0};14     for(int i=0; i<len; ++i)15         ++ans[List[i]-'0'];16 17     for(int i=0; i<10; ++i) {18         if(ans[i] != 0)19             printf("%d:%d\n", i, ans[i]);20     }21 22     return 0;23 }

B1011.
A+B和C (15)

B1011.
A+B和C (15)

B103一.
查验身份证

Description:

Description:

Description:

给定区间[-231,
231]内的1个整数A、B和C,请判断A+B是或不是超越C。

给定区间[-231,
231]内的3个整数A、B和C,请判断A+B是还是不是超越C。

3个官方的身份证编号由21人地点、日期编号和顺序编号加一人校验码组成。校验码的盘算规则如下:

Input:

Input:

第三对前1七个人数字加权求和,权重分配为:{7,玖,10,5,捌,四,2,1,陆,叁,七,9,拾,伍,八,四,二};然后将总计的和对1一取模获得值Z;最终依照以下关系对应Z值与校验码M的值:

输入第三行提交正整数T(<=十),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。

输入第3行提交正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占壹行,顺序给出A、B和C。整数间以空格分隔。

Z:0 1 2 3 4
5 6 7 8 9 10
M:1 0 X 9
8 7 6 5 4 3 2

Output:

Output:

今昔加以1些身份证编号,请您验证校验码的管事,并出口有题指标号码。

对每组测试用例,在壹行中输出“Case
#X: true”假设A+B>C,不然输出“Case #X:
false”,在那之中X是测试用例的号码(从一开首)。

对每组测试用例,在一行中输出“Case
#X: true”假如A+B>C,不然输出“Case #X:
false”,个中X是测试用例的号码(从一发端)。

Input:

Sample
Input:

Sample
Input:

输入第壹行提交正整数N(<=
十0)是输入的身份证号码的个数。随后N行,每行给出一个110人身份证号码。

4
1 2
3
2 3
4
2147483647
0 2147483646
0
-2147483648 -2147483647

4
1 2
3
2 3
4
2147483647
0 2147483646
0
-2147483648 -2147483647

Output:

Sample
Output:

Sample
Output:

根据输入的顺序每行输出3个有标题的身份证编号。那里并不考察前1捌人是或不是创建,只检查前一七个人是还是不是全为数字且最后一人校验码计算标准。若是全部号码都常常,则输出“All
passed”。

Case
#1: false
Case
#2: true
Case
#3: true
Case
#4: false

Case
#1: false
Case
#2: true
Case
#3: true
Case
#4: false

Sample
Input1:

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int T;
 8     long long a, b, c;
 9     scanf("%d", &T);
10     for(int i=1; i<=T; ++i) {
11         scanf("%lld %lld %lld", &a, &b, &c);
12         if(a+b > c) {
13             printf("Case #%d: true\n", i);
14         } else {
15             printf("Case #%d: false\n", i);
16         }
17     }
18 
19     return 0;
20 }
 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int T;
 8     long long a, b, c;
 9     scanf("%d", &T);
10     for(int i=1; i<=T; ++i) {
11         scanf("%lld %lld %lld", &a, &b, &c);
12         if(a+b > c) {
13             printf("Case #%d: true\n", i);
14         } else {
15             printf("Case #%d: false\n", i);
16         }
17     }
18 
19     return 0;
20 }

4
320124198808240056
12010X198901011234
110108196711301866
37070419881216001X

 

 

Sample
Output1:

B1016.
部分A+B (15)

B1016.
部分A+B (15)

12010X198901011234
110108196711301866
37070419881216001X

Description:

Description:

Sample
Input2:

正整数A的“DA(为1人平头)部分”定义为由A中全数DA结合的新整数PA。例如:给定A
= 3862767,DA =
6,则A的“6部分”PA是66,因为A中有2个6。

正整数A的“DA(为1个人平头)部分”定义为由A中全数DA结缘的新整数PA。例如:给定A
= 3862767,DA =
6,则A的“6部分”PA是66,因为A中有2个6。

2
320124198808240056
110108196711301862

现给定A、DA、B、DB,请编写程序总结PA +
PB

现给定A、DA、B、DB,请编写程序总括PA +
PB

Sample
Output2:

Input:

Input:

All
passed

输入在一行中相继给出A、DA、B、DB,中间以空格分隔,个中0
< A, B < 1010

输入在一行中逐1给出A、DA、B、DB,中间以空格分隔,个中0
< A, B < 十10

 1 #include <cstdio> 2 #include <cstring> 3  4 int w[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; 5 char change[] = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'}; 6  7 int main() 8 { 9     int n;10     char str[20];11     bool flag = true;12     scanf("%d", &n);13     for(int i=0; i<n; ++i) {14         scanf("%s", str);15         int j, last = 0;16         for(j=0; j<17; ++j) {17             if(!(str[j]>='0' && str[j]<='9'))   break;18             last += (str[j]-'0')*w[j];19         }20         if(j < 17) {21             flag = false;22             printf("%s\n", str);23         } else {24             if(change[last%11] != str[17]) {25                 flag = false;26                 printf("%s\n", str);27             }28         }29     }30     if(flag == true)    printf("All passed\n");31 32     return 0;33 }

Output:

Output:

B100二.
写出那些数

在壹行中输出PA +
PB的值。

在1行中输出PA +
PB的值。

Description:

Sample
Input1:

Sample
Input1:

读入1个当然数n,总结其各位数字之和,用汉语拼音写出和的每壹位数字。

3862767
6 13530293 3

3862767
6 13530293 3

Input:

Sample
Output1:

Sample
Output1:

种种测试输入包蕴二个测试用例,即给出自然数n的值。那里保险n小于⑩十0。

399

399

Output:

Sample
Input2:

Sample
Input2:

在一行内输出n的各位数字之和的每一人,拼音数字间有一空格,但1行中最终二个拼音数字后并未空格。

3862767
1 13530293 8

3862767
1 13530293 8

Sample
Input:

Sample
Output2:

Sample
Output2:

1234567890987654321123456789

0

0

Sample
Output:

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int Da, Db;
 8     long long pA = 0, pB = 0, A, B;
 9     scanf("%lld %d %lld %d", &A, &Da, &B, &Db);
10 
11     while(A != 0) {
12         if(A%10 == Da) {
13             pA = pA*10+Da;
14         }
15         A /= 10;
16     }
17     while(B != 0) {
18         if(B%10 == Db) {
19             pB = pB*10+Db;
20         }
21         B /= 10;
22     }
23 
24     printf("%lld\n", pA+pB);
25 
26     return 0;
27 }
 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int Da, Db;
 8     long long pA = 0, pB = 0, A, B;
 9     scanf("%lld %d %lld %d", &A, &Da, &B, &Db);
10 
11     while(A != 0) {
12         if(A%10 == Da) {
13             pA = pA*10+Da;
14         }
15         A /= 10;
16     }
17     while(B != 0) {
18         if(B%10 == Db) {
19             pB = pB*10+Db;
20         }
21         B /= 10;
22     }
23 
24     printf("%lld\n", pA+pB);
25 
26     return 0;
27 }

yi san
wu

 

 

 1 #include <cstdio> 2 #include <cstring> 3  4 int main() 5 { 6     char str[110]; 7     gets; 8  9     int ans[10], num = 0, len = strlen;10     int sum = 0;11     for(int i=0; i<len; ++i)12         sum += str[i]-'0';13     while(sum != 0) {14         ans[num++] = sum%10;15         sum /= 10;16     }17     char change[10][5] = {"ling", "yi", "er", "san", "si", "wu", "liu", "qi", "ba", "jiu"};18 19     for(int i=num-1; i>=0; i--) {20         printf("%s", change[ans[i]]);21         if(i != 0)  printf(" ");22         else printf("\n");23     }24 25     return 0;26 }

B十二陆.
程序运维时间 (1伍)

B十26.
程序运转时间 (1伍)

B1009.
说反话

Description:

Description:

Description:

要拿走1个C语言程序的运维时刻,常用的方法是调用头文件time.h,当中提供了clock()函数,能够捕捉从程序初步运维到clock()被调用时所消耗的日子。这几个小时单位是clock
tick,即“石英钟打点”。同时还有二个常数CLK_TCK,给出了机器挂钟每秒所走的钟表打点数。于是为了取得一个函数f的运转时刻,大家假若在调用f在此以前先调用clock(),获得三个石英钟打点数C壹;在f执行到位后再调用clock(),得到另四个时钟打点数C二;两回获得的时钟打点数之差(C二-C一)就是f运维所消耗的钟表打点数,再除以常数CLK_TCK,就赢得了以秒为单位的运作时刻。

要取得一个C语言程序的周转时刻,常用的章程是调用头文件time.h,个中提供了clock()函数,能够捕捉从程序开首运转到clock()被调用时所费用的年月。这几个日子单位是clock
tick,即“石英钟打点”。同时还有二个常数CLK_TCK,给出了机器石英钟每秒所走的时钟打点数。于是为了取得七个函数f的周转时刻,大家借使在调用f以前先调用clock(),得到二个石英钟打点数C一;在f执行到位后再调用clock(),获得另三个石英钟打点数C贰;一次获得的钟表打点数之差(C二-C1)正是f运转所费用的石英钟打点数,再除以常数CLK_TCK,就获得了以秒为单位的运维时刻。

给定一句乌Crane语,须求您编写程序,将句中具备单词的逐壹颠倒输出。

那边无妨简要如果常数CLK_TCK为十0。现给定被测函数前后两遍获得的机械钟打点数,请您付出被测函数运营的光阴。

此间不要紧简要借使常数CLK_TCK为100。现给定被测函数前后一遍拿走的钟表打点数,请您提交被测函数运转的时间。

Input:

Input:

Input:

测试输入包括三个测试用例,在壹行内交付总长度不当先80的字符串。字符串由若干单词和多少空格组成,在那之中单词是由英文字母组成的字符串,单词之间用二个空格分开,输入保障句子末尾未有剩余的空格。

输入在一行中逐条给出3个整数C1和C一。注意几回拿走的钟表打点数肯定不雷同,即C一< C二,并且取值在[0, 107]。

输入在壹行中各种给出三个整数C一和C一。注意四回获得的钟表打点数肯定不均等,即C壹< C2,并且取值在[0, 107]。

Output:

Output:

Output:

各类测试用例的出口占一行,输出倒序后的句子。

在一行中输出被测函数运营的年月。运营时刻必须遵照“hh:mm:ss”(即二位的“时:分:秒”)格式输出;不足1秒的时间4舍5入到秒。

在一行中输出被测函数运维的时光。运行时刻必须依照“hh:mm:ss”(即3个人的“时:分:秒”)格式输出;不足一秒的年月4舍5入到秒。

Sample
Input:

Sample
Input:

Sample
Input:

Hello World
Here I Come

123
4577973

123
4577973

Sample
Output:

Sample
Output:

Sample
Output:

Come I Here
World Hello

12:42:59

12:42:59

 1 #include <cstdio> 2  3 #define MaxSize 100 4 char List[MaxSize][MaxSize]; 5  6 int main() 7 { 8     //freopen("E:\\Temp\\input.txt", "r", stdin); 9 10     int num = 0;11     while(scanf("%s", List[num]) != EOF)12         num++;13 14     for(int i=num-1; i>=0; --i) {15         printf("%s", List[i]);16         if(i != 0)  printf(" ");17         else printf("\n");18     }19 20     return 0;21 }

 1 #include <cstdio> 2 #include <cstring> 3  4 #define MaxSize 100 5 char List[MaxSize], ans[MaxSize][MaxSize]; 6  7 int main() 8 { 9     //freopen("E:\\Temp\\input.txt", "r", stdin);10 11     gets;12 13     int num = 0, counter = 0, len = strlen;14     for(int i=0; i<len; ++i) {15         if(List[i] != ' ')16             ans[num][counter++] = List[i];17         else {18             counter = 0;19             ++num;20         }21     }22 23     for(int i=num; i>=0; --i) {24         printf("%s", ans[i]);25         if(i != 0)  printf(" ");26         else printf("\n");27     }28 29     return 0;30 }
 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int C1, C2;
 8     scanf("%d %d", &C1, &C2);
 9 
10     int ans = C2 - C1;
11     if(ans%100 < 50) {
12         ans /= 100;
13     } else {
14         ans = ans/100+1;
15     }
16 
17     printf("%02d:%02d:%02d\n", ans/3600, ans%3600/60, ans%60);
18 
19     return 0;
20 }
 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     //freopen("E:\\Temp\\input.txt", "r", stdin);
 6 
 7     int C1, C2;
 8     scanf("%d %d", &C1, &C2);
 9 
10     int ans = C2 - C1;
11     if(ans%100 < 50) {
12         ans /= 100;
13     } else {
14         ans = ans/100+1;
15     }
16 
17     printf("%02d:%02d:%02d\n", ans/3600, ans%3600/60, ans%60);
18 
19     return 0;
20 }

B1014.
霍姆斯的约会

 

 

Description:

B十0八.
数组成分循环右移难题 (20)

B拾08.
数组成分循环右移难点 (20)

大侦探Holmes接到一张竟然的字条:“大家约会吧!
34八五djDkxh四hhGE 2玖八四akDfkkkkgg艾德sb s&hgsfdk
d&Hyscvnm”。大暗访一点也不慢就掌握了,字条上意外的乱码实际上就是花前月下的光阴“星期414:0肆”,因为前边两字符串中第三对相同的大写英文字母是第伍个假名’D’,代表星期贰;第叁对同样的字符是’E’,那是第5个英文字母,代表1天里的第一5个钟头(于是1天的0点到二三点由数字0到9、以及大写字母A到N表示);前面两字符串第3对同一的英文字母’s’出现在第伍个任务上,代表第四分钟。现给定两对字符串,请协理霍姆斯解码获得约会的时刻。

Description:

Description:

Input:

1个数组A中存有N(N>0)个整数,在不允许利用其它数组的前提下,将各类整数循环向右移M(M>=0)个岗位,即将A中的数据由(A0A1……AN-14858.com ,)变换为(AN-M ……
AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前方的M个地点)。如果急需挂念程序移动多少的次数尽量少,要怎么着筹划活动的章程?

3个数组A中存有N(N>0)个整数,在不允许行使其它数组的前提下,将各样整数循环向右移M(M>=0)个职责,即将A中的数据由(A0A1……AN-1)变换为(AN-M ……
AN-1 A0 A1……AN-M-1)(最终M个数循环移至最前边的M个地点)。若是须求思虑程序移动数据的次数尽量少,要什么设计活动的艺术?

输入在四行中分别交由陆个非空、不含有空格、且长度不当先60的字符串。

Input:

Input:

Output:

各类输入包蕴三个测试用例,第三行输入N
(
1<=N<=拾0)、M(M>=0);第1行输入N个整数,之间用空格分隔。

各类输入包蕴1个测试用例,第二行输入N
(
壹<=N<=100)、M(M>=0);第3行输入N个整数,之间用空格分隔。

在1行中输出约会的年月,格式为“DAY
HH:MM”,当中“DAY”是某星期的叁字符缩写,即MON表示星期一,TUE表示星期三,WED表示星期3,THU表示星期四,FKugaI表示星期2,SAT代表礼拜二,SUN表示星期5。标题输入保险每一个测试存在唯壹解。

Output:

Output:

Sample
Input:

在1行中输出循环右移M位以往的整数种类,之间用空格分隔,体系结尾无法有多余空格。

在壹行中输出循环右移M位以往的整数种类,之间用空格分隔,种类结尾不能够有剩余空格。

3485djDkxh4hhGE

Sample
Input:

Sample
Input:

2984akDfkkkkggEdsb

6
2
1 2 3
4 5 6

6
2
1 2 3
4 5 6

s&hgsfdk

Sample
Output:

Sample
Output:

d&Hyscvnm

5 6 1
2 3 4

5 6 1
2 3 4

Sample
Output:

 1 #include <cstdio>
 2 
 3 #define MaxSize 110
 4 
 5 int List[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, M, counter = 1;
12     scanf("%d %d", &N, &M);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &List[i]);
15     }
16 
17     M %= N;
18     for(int i=N-M; i<N; ++i) {
19         if(counter != N) {
20             printf("%d ", List[i]);
21         } else {
22             printf("%d\n", List[i]);
23         }
24         counter++;
25     }
26     for(int i=0; i<N-M; ++i) {
27         if(counter != N) {
28             printf("%d ", List[i]);
29         } else {
30             printf("%d\n", List[i]);
31         }
32         counter++;
33     }
34 
35     return 0;
36 }
 1 #include <cstdio>
 2 
 3 #define MaxSize 110
 4 
 5 int List[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, M, counter = 1;
12     scanf("%d %d", &N, &M);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &List[i]);
15     }
16 
17     M %= N;
18     for(int i=N-M; i<N; ++i) {
19         if(counter != N) {
20             printf("%d ", List[i]);
21         } else {
22             printf("%d\n", List[i]);
23         }
24         counter++;
25     }
26     for(int i=0; i<N-M; ++i) {
27         if(counter != N) {
28             printf("%d ", List[i]);
29         } else {
30             printf("%d\n", List[i]);
31         }
32         counter++;
33     }
34 
35     return 0;
36 }

THU
14:04

 

 

 1 #include <cstdio> 2 #include <cstring> 3  4 int main() 5 { 6     char week[7][5] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"}; 7     char str1[70], str2[70], str3[70], str4[70]; 8     gets, gets, gets, gets; 9 10     int len1 = strlen, len2 = strlen, len3 = strlen, len4 = strlen;11     int i;12     for(i=0; i<len1&&i<len2; ++i) {13         if(str1[i]==str2[i] && str1[i]>='A' && str1[i]<='G') {14             printf("%s ", week[str1[i]-'A']);15             break;16         }17     }18     for(++i; i<len1&&i<len2; ++i) {19         if(str1[i] == str2[i]) {20             if(str1[i]>='0' && str1[i]<='9') {21                 printf("%02d:", str1[i]-'0');22                 break;23             } else if(str1[i]>='A' && str1[i]<='N') {24                 printf("%02d:", str1[i]-'A'+10);25                 break;26             }27         }28     }29     for(i=0; i<len3&&i<len4; ++i) {30         if(str3[i] == str4[i]) {31             if((str3[i]>='A' && str3[i]<='Z') || (str3[i]>='a'&&str3[i]<='z')) {32                 printf("%02d", i);33                 break;34             }35         }36     }37 38     return 0;39 }

B十12.
数字分类 (20)

B101二.
数字分类 (20)

A1061.
Dating

Description:

Description:

Description:

定一多种正整数,请按要求对数字举行分类,并出口以下伍个数字:

定一系列正整数,请按须求对数字举办归类,并出口以下5个数字:

Sherlock
Holmes received a note with some strange strings: “Let’s date!
3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”. It took him only
a minute to figure out that those strange strings are actually referring
to the coded time “Thursday 14:04” — since the first common capital
English letter (case sensitive) shared by the first two strings is the
4th capital letter ‘D’, representing the 4th day in a week; the second
common character is the 5th capital letter ‘E’, representing the 14th
hour (hence the hours from 0 to 23 in a day are represented by the
numbers from 0 to 9 and the capital letters from A to N, respectively);
and the English letter shared by the last two strings is ‘s’ at the 4th
position, representing the 4th minute. Now given two pairs of strings,
you are supposed to help Sherlock decode the dating time.

  • A1= 能被伍整除的数字中全数偶数的和;
  • A2

    将被5除后余1的数字按给出顺序举办交错求和,即总结n一-n2+n3-n四…;

  • A三= 被5除后余二的数字的个数;
  • 奥迪A六= 被伍除后余叁的数字的平均数,精确到小数点后1个人;
  • A5= 被伍除后余四的数字中最大数字。
  • A1= 能被5整除的数字中负有偶数的和;
  • A2

    将被伍除后余1的数字按给出顺序进行交错求和,即总计n一-n2+n三-n四…;

  • A③= 被五除后余2的数字的个数;
  • BMW五系= 被5除后余三的数字的平平均数量,精确到小数点后壹位;
  • A五= 被伍除后余肆的数字中最大数字。

Input:

Input:

Input:

Each input
file contains one test case. Each case gives 4 non-empty strings of no
more than 60 characters without white space in 4 lines.

每一种输入包罗三个测试用例。种种测试用例先给出三个不抢先一千的正整数N,随后给出N个不超越一千的待分类的正整数。数字间以空格分隔。

各类输入包括一个测试用例。每一种测试用例先给出3个不超过一千的正整数N,随后给出N个不抢先1000的待分类的正整数。数字间以空格分隔。

Output:

Output:

Output:

For each
test case, print the decoded time in one line, in the format “DAY
HH:MM”, where “DAY” is a 3-character abbreviation for the days in a week
— that is, “MON” for Monday, “TUE” for Tuesday, “WED” for Wednesday,
“THU” for Thursday, “FRI” for Friday, “SAT” for Saturday, and “SUN” for
Sunday. It is guaranteed that the result is unique for each case.

对给定的N个正整数,按标题供给计算A1~A5并在1行中各类输出。数字间以空格分隔,但行末不得有盈余空格。

对给定的N个正整数,按题目供给计算A壹~A5并在一行中逐壹输出。数字间以空格分隔,但行末不得有剩余空格。

Sample
Input:

若里面某1类数字不设有,则在相应地方输出“N”。

若里面某1类数字不设有,则在对应地方输出“N”。

3485djDkxh4hhGE

Sample
Input1:

Sample
Input1:

2984akDfkkkkggEdsb

13 1 2
3 4 5 6 7 8 9 10 20 16 18

13 1 2
3 4 5 6 7 8 9 10 20 16 18

s&hgsfdk

Sample
Output1:

Sample
Output1:

d&Hyscvnm

30 11
2 9.7 9

30 11
2 9.7 9

Sample
Output:

Sample
Input2:

Sample
Input2:

THU
14:04

8 1 2
4 5 6 7 9 16

8 1 2
4 5 6 7 9 16

 1 #include <cstdio> 2 #include <cstring> 3  4 #define MaxSize 100 5 char str1[MaxSize], str2[MaxSize], str3[MaxSize], str4[MaxSize]; 6 char date[7][5] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"}; 7  8 int main() 9 {10     //freopen("E:\\Temp\\input.txt", "r", stdin);11 12     gets, gets, gets, gets;13 14     int i = 0, len1 = strlen, len2 = strlen, len3 = strlen, len4 = strlen;15     for(; i<len1&&i<len2; ++i) {16         if(str1[i]==str2[i] && str1[i]>='A'&& str1[i]<='G') {17             printf("%s ", date[str1[i]-'A']);18             break;19         }20     }21     for(++i; i<len1&&i<len2; ++i) {22         if(str1[i]==str2[i]) {23             if(str1[i]>='0' && str1[i]<='9') {24                 printf("%02d:", str1[i]-'0');25                 break;26             } else if(str1[i]>='A' && str1[i]<='N') {27                 printf("%02d:", str1[i]-'A'+10);28                 break;29             }30         }31     }32     for(i=0; i<len3&&i<len4; ++i) {33         if(str3[i] == str4[i]) {34             if((str3[i]>='a'&&str1[i]<='z') || (str3[i]>='A'&&str3[i]<='Z')) {35                 printf("%02d", i);36                 break;37             }38         }39     }40 41     return 0;42 }

Sample
Output2:

Sample
Output2:

N 11 2
N 9

N 11 2
N 9

 1 #include <cstdio>
 2 
 3 #define MaxSize 5
 4 
 5 int List[MaxSize], ans[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, temp;
12     scanf("%d", &N);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &temp);
15         if(temp%5 == 0) {
16             if(temp%2 == 0) {
17                 ans[0] += temp;
18                 List[0]++;
19             }
20         } else if(temp%5 == 1) {
21             if(List[1]%2 == 0) {
22                 ans[1] += temp;
23             } else {
24                 ans[1] -= temp;
25             }
26             List[1]++;
27         } else if(temp%5 == 2) {
28             List[2]++;
29         } else if(temp%5 == 3) {
30             ans[3] += temp;
31             List[3]++;
32         } else {
33             if(temp > ans[4]) {
34                 ans[4] = temp;
35             }
36             List[4]++;
37         }
38     }
39 
40     if(List[0] == 0) {
41         printf("N ");
42     } else {
43         printf("%d ", ans[0]);
44     }
45     if(List[1] == 0) {
46         printf("N ");
47     } else {
48         printf("%d ", ans[1]);
49     }
50     if(List[2] == 0) {
51         printf("N ");
52     } else {
53         printf("%d ", List[2]);
54     }
55     if(List[3] == 0) {
56         printf("N ");
57     } else {
58         printf("%.1f ", (double)ans[3]/List[3]);
59     }
60     if(List[4] == 0) {
61         printf("N\n");
62     } else {
63         printf("%d\n", ans[4]);
64     }
65 
66     return 0;
67 }
 1 #include <cstdio>
 2 
 3 #define MaxSize 5
 4 
 5 int List[MaxSize], ans[MaxSize];
 6 
 7 int main()
 8 {
 9     //freopen("E:\\Temp\\input.txt", "r", stdin);
10 
11     int N, temp;
12     scanf("%d", &N);
13     for(int i=0; i<N; ++i) {
14         scanf("%d", &temp);
15         if(temp%5 == 0) {
16             if(temp%2 == 0) {
17                 ans[0] += temp;
18                 List[0]++;
19             }
20         } else if(temp%5 == 1) {
21             if(List[1]%2 == 0) {
22                 ans[1] += temp;
23             } else {
24                 ans[1] -= temp;
25             }
26             List[1]++;
27         } else if(temp%5 == 2) {
28             List[2]++;
29         } else if(temp%5 == 3) {
30             ans[3] += temp;
31             List[3]++;
32         } else {
33             if(temp > ans[4]) {
34                 ans[4] = temp;
35             }
36             List[4]++;
37         }
38     }
39 
40     if(List[0] == 0) {
41         printf("N ");
42     } else {
43         printf("%d ", ans[0]);
44     }
45     if(List[1] == 0) {
46         printf("N ");
47     } else {
48         printf("%d ", ans[1]);
49     }
50     if(List[2] == 0) {
51         printf("N ");
52     } else {
53         printf("%d ", List[2]);
54     }
55     if(List[3] == 0) {
56         printf("N ");
57     } else {
58         printf("%.1f ", (double)ans[3]/List[3]);
59     }
60     if(List[4] == 0) {
61         printf("N\n");
62     } else {
63         printf("%d\n", ans[4]);
64     }
65 
66     return 0;
67 }

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有