1、正方形数目
#include <iostream>
#include<cstdio>
using namespace std;
int main() {
int a, b, cnt;
while (scanf_s("%d %d", &a, &b) != EOF) {
cnt = 0;
while (a && b) {
if (a > b) a -= b;
else b -= a;
cnt++;
}
printf("%d\n", cnt);
}
return 0;
} 2、a, b 能否经过运算得到 c
#include <iostream>
using namespace std;
bool judge(long long a, long long b, long long c){
if (a + b == c) return true;
if (a * b == c) return true;
if (a - b == c || b - a == c) return true;
if (b != 0 && a % b == 0 && a / b == c) return true;
if (a != 0 && b % a == 0 && b / a == c) return true;
return false;
}
int main(){
long long a, b, c;
cin >> a >> b >> c;
if(judge(a, b, c)) cout << "YES";
else cout << "NO";
return 0;
} 3、实现一个优先队列
#include<iostream>
#include<set>
#include<string>
using namespace std;
struct node {
int N, P;
bool operator<(const node& A)const {return P != A.P ? P > A.P : N < A.N;}
};
int main() {
int n;
set<node>S;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
string op;
cin >> op;
if (op[0] == 'A') {
node tmp;
scanf("%d%d", &tmp.N, &tmp.P);
S.insert(tmp);
}
else if (op[0] == 'N') {
if (S.size() == 0)
printf("-1\n");
else {
printf("%d\n", S.begin()->N);
S.erase(S.begin());
}
}
else if (op[0] == 'R') {
int ID;
scanf("%d", &ID);
for (auto it = S.begin(); it != S.end(); it++) {
if (it->N == ID) {
S.erase(it);
break;
}
}
}
else if (op[0] == 'C')
printf("%d\n", S.size());
}
return 0;
} 
京公网安备 11010502036488号