1、相似三角形
相似三角形是彼此各边长对应成同比例的两个或更多个三角形。 请根据输入的三条边边长,去掉不能构成三角形者,只保 留相似三角形中最前面的一个。
题解
首先能构成三角形的条件是最短的两边之和大于最长的边。如果不满足则不输出。如果满足,那么检查是否之前是否有相似的三角形(注意这里相似是指的是三条边对应成比例,是限制顺序的,即 3 4 5 和 5 4 3 是不相似的),如果有则不输出,否则输出。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <set>
#include <tuple>
using namespace std;
long long f[20000][3];
long long gcd(long long a, long long b) {
if(b == 0) return a;
return gcd(b, a % b);
}
int main() {
int n = 0;
long long a, b, c;
set<tuple<long long,long long,long long>> s;
while(scanf("%lld%lld%lld", &a, &b, &c) == 3) {
long long cur[3] = {a,b,c};
sort(cur, cur + 3);
if(cur[0] + cur[1] > cur[2]) {
long long gcur[3] = {a,b,c};
long long g = gcd(a, b);
g = gcd(g, c);
gcur[0] /= g;
gcur[1] /= g;
gcur[2] /= g;
if(!s.count({gcur[0], gcur[1], gcur[2]})) {
s.insert({gcur[0], gcur[1], gcur[2]});
f[n][0] = a;
f[n][1] = b;
f[n][2] = c;
n++;
}
}
}
for(int i = 0; i < n; ++i) {
printf("%lld %lld %lld\n", f[i][0], f[i][1], f[i][2]);
}
return 0;
}
2、贝博士的机械零件
贝博士是个大忙人,他在设计和制造一台非常复杂的机械式计算机。 最近贝博士有一点烦恼,因为机械零件的种类繁多, 磨损又快,经费不太够用了。不过,他发现有一些机械零件在磨损以后,可以用若干同一型号的磨损旧零件重新回炉熔化 以后再铸造出一个该型号的新零件,符合这样的特点的机械零件称为可翻新零件。 于是贝博士请来了他的助手艾小姐,请她统计一下有多少种型号的可翻新零件,每一种目前有多少存量又能以多少个旧零件重新回炉铸造出一个新零件,要求计 算出对应于每一种机械零件他最终能使用的零件个数。
题解
模拟,每次只要旧零件数量 >= q(即兑换新零件所需数量),就花费 q 个旧零件兑换1个新零件,直到最终零件数量不够则返回总共的数量即可
#include <iostream>
#include <vector>
using namespace std;
int main() {
int p, q;
cin >> p >> q;
int res = p;
while(p >= q) {
int n = p / q;
res += n;
p = p % q;
p += n;
}
cout << res << endl;
}
3、判断题
洛芙莱斯伯爵夫人阿达针对查尔斯•巴贝奇的差分机图纸编写了描述相当复杂算法的指令,尽管这台机械式计算机以当时的科技条 件并未能够实际制造出来,但阿达仍然是世界公认的第一位程序员。
答案:正确。
4、选择题:以下选项中,哪一项不能用于二进制表示?
A、电压的高低
B、人类的心情
C、开关的通断
D、信号的长短
答案:B。人类的心情不是数字量,不能用二进制表示。
5、选择题:以下选项中,哪一项不属于等价关系?
A、三角形之间的相似关系
B、整数之间的同余关系(模n为大于1的整数)
C、同学之间的同一天生日关系
D、三维欧几里得空间直线之间的互相垂直关系
答案:D。等价关系定义为:设R是非空集合A上的二元关系,若R是自反的、对称的、传递的,则称R是A上的等价关系。而三维空间中,如果直线 A 垂直于直线 B,直线 B 垂直于直线 C,则直线 A 不一定垂直于直线 C,因此不满足传递性,故不属于等价关系。
6、填空题
克劳德•香农1938年在IEEE学报上发表的《_____》论文奠定了一切数字电路设计的基础。
答案:继电器和开关电路的符号分析。