7-1 成绩等级
PAT考试每年举办三次,分为Top、Advanced和Basic三个级别。小明的公司正在招聘程序员,主要关注Basic这个等级成绩。很多应聘者提供了他们的Basic级别的PAT考试分数。
对2016年三次PAT考试的分数做了一番研究之后,小明的公司给出了一个规则把应聘者划分为A、B 2个等级:如果分数小于底线L,则为B级,否则就是A级。
请编写程序帮忙计算应聘者的等级。
输入格式:
在一行中给出2个整数L和G。0<L<100, 0<=G<=100。
输出格式:
在一行中输出应聘者的等级。
输入样例:
75 89
输出样例:
A
#include <bits/stdc++.h> using namespace std; int main() { int a,b; cin >> a >> b; if(b < a) cout << "B"; else cout << "A"; return 0; }
7-2 h0001.Hello World! (5 分)
本题要求编写程序,输出一个短句“Hello World!”。
输入格式:
本题目没有输入。
输出格式:
在一行中输出短句“Hello World!”。
输入样例:
无
输出样例:
Hello World!
#include <bits/stdc++.h> using namespace std; int main() { cout << "Hello World!"; return 0; }
7-3 h0055. 长方体
给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。
输入格式:
每行三个整数a, b, c表示面积(1 <= a, b, c <= 10000)。
输出格式:
相应行一个整数表示边长和。
输入样例:
1 1 1 4 6 6
输出样例:
12 28
#include <bits/stdc++.h> using namespace std; int main() { double a, b, c; while(cin >> a >> b >> c) { double x = sqrt(a * b / c); double y = sqrt(a * c / b); double z = sqrt(b * c / a); printf("%.0f\n",4 * (x + y + z)); } return 0; }
7-4 Jack cheng的烦恼
Jack cheng 一出生就表现出非同一般的天赋 , 异常的聪明,对于老师教授的知识他总是一点就会, 其中Jack cheng尤其擅长数学,喜欢计算机。课下之余他自己学习了一些编程知识,然而遗憾的是他并不能看懂Code。现在他遇到了一个问题,他想要编程一个进制转换的计算器,他需要我们这些专业人士帮忙。。。
简单点, 我们要帮Jackcheng 实现一个十进制和二进制互转的计算器。
输入格式:
输入n , m 。 n 代表要进行转换的数字(n>=0 && n <= 1000000) , m 代表需要转换成的进制。
输出格式:
将转换后的数据输出。
输入样例:
8 2
输出样例:
1000
#include <bits/stdc++.h> using namespace std; int main() { int n, m; cin >> n >> m; if(m == 2) // 10转2 { string s; while(n) { s += n % m + '0'; n /= m; } for(int i = s.size() - 1; i >= 0; i -- ) cout << s[i]; } else // 2转10 { int sum = 0, k = 0; while(n) { sum += n % 10 * pow(2, k); k ++ ; n /= 10; } cout << sum; } return 0; }
7-5 毕业照
你拍了一张毕业生的毕业照。这幅图可以看作是n乘以n×n的矩阵a, a中的每个元素都是0或1,分别代表一个空白的背景或一个学生。
但是老师们太忙了,没有时间和学生们合影,只能自己拍了一张合影。这张照片可以看作矩阵B,其中每个元素为2,代表一个老师。
作为一名photoshop大师,你的工作是将照片B放入照片a中,并遵循以下约束条件:
不允许分割、旋转或缩放图片,只能进行平移。
矩阵B中的每个元素应该与A中的一个元素完全重叠,每个老师应该与空白背景重叠,而不是躲避学生。
请计算一下你可以将照片B放入照片A的可能方法。
输入描述:
第一行包含两个整数n,m表示照片A和B的大小。
在接下来的n行中,每一行包含n个’0’或’1’字符,代表矩阵A。
最后一行包含m个字符’2’,代表矩阵B。
输出描述:
在一行中输出一个整数,表示答案。
输入样例:
在这里给出一组输入。例如:
5 3 00000 01110 01110 01110 00000 222
输出样例:
在这里给出相应的输出。例如:
6
#include <bits/stdc++.h> using namespace std; const int N = 1010; int main() { int n,m; string f[N],s; cin >> n >> m; for(int i=0;i<n;i++) cin >> f[i]; for(int i=0;i<m;i++) cin >> s; for(int i=0;i<m;i++) s[i] = '0'; int cnt = 0; for(int i=0;i<n;i++) { for(int j=0;j<=n-s.size();j++) { string ss = f[i].substr(j,s.size()); if(ss == s) cnt ++; } } cout << cnt; return 0; }
7-6 h0045. 限速
B和T踏上行程,但他们汽车的里程表坏了,因此他们不知道他们驾车走了多少英里。幸运的是,B有一个正在运行的跑表,可以记录他们的速度和驾驶了多少时间。然而,这个跑表的记录方式有些古怪,他们需要计算总的驾驶距离。请您编写一个程序完成这项计算。
输入格式:
输入由一个或多个测试用例组成。每个测试用例开始的第一行为一个整数n,1≤n≤10;后面是n对值,每对一行。每对的第一个值s是时速,第二个值t是总的耗费时间。s和t都是整数,1 ≤s≤90并且1≤t≤12。t的值总是增序。n的值取-1表示输入结束。
输出格式:
对于每一个测试用例,输出行驶距离,然后空格,输出单词"miles"。
输入样例:
3 20 2 30 6 10 7 2 60 1 30 5 4 15 1 25 2 30 3 10 5 −1
输出样例:
170 miles 180 miles 90 miles
#include <bits/stdc++.h> using namespace std; int main() { int n; while(cin >> n && n != -1) { int sum = 0; int res, t = 0, s; // res表示中间值 for(int i=0;i<n;i++) { res = t; cin >> s >> t; sum += s * (t - res); } printf("%d miles\n",sum); } return 0; }
7-7 弄丢的直角三角形(题目存在一些问题)
7-8 自守数
数学的世界有很多很漂亮的数字或者数字集合,比如梅森数,哥德巴赫猜想,水仙花数,完全数,自守数。今天我们就一起来探究一下自守数。自守数是指一个数的平方的尾数等于该数自身的自然数。例如:25^2 = 625,76^2 = 5776,9376^2 = 87909376。请求出n以内的自守数的个数
输入格式:
第一行输入n,随后输入n个数m。
输出格式:
在一行中输出m以内自守数的个数,所有输出在一行内完成,末尾没有多余空格。
输入样例:
5 1 2 3 4 5
输出样例:
2 2 2 2 3
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int N = 1e5 + 10; int f[N]; int main() { f[0] = 1, f[1] = 2; for (int i = 2; i <= N; i ++ ) { int x = i,cnt = 1; LL y = i * i; while (x) { if (y % 10 != x % 10) { cnt = 0; break; } x /= 10, y /= 10; } f[i] = f[i - 1] + cnt; } int n, x; cin >> n; for (int i = 0; i < n; i ++ ) { if(i) cout << ' '; cin >> x; cout << f[x]; } return 0; }