挑战赛#7 题解
2024-08-03 12:44:59
发布于:湖南
T1
直接输出就行了
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
cout << "laheedon e la le li pho la~";
return 0;
}
T2
二分求出行数,然后打印
#include <iostream>
#include <cstdio>
using namespace std;
int main(){
int n;
cin >> n;
int l = 1, r = n;
while(l <= r){//求倒三角的行数
int mid = l + r >> 1;
if(mid * mid * 2 - 1 == n){
l = mid + 1;
break;
}
if(mid * mid * 2 - 1 > n) r = mid - 1;
else l = mid + 1;
}
int ans = l - 1;
for(int i = 1; i <= ans; i++){//倒三角
for(int j = 1; j < i; j++) cout << ' ';
for(int j = 1; j <= (ans - i) * 2 + 1; j++) cout << '*';
cout << endl;
}
for(int i = ans - 1; i >= 1; i--){//正三角
for(int j = 1; j < i; j++) cout << ' ';
for(int j = 1; j <= (ans - i) * 2 + 1; j++) cout << '*';
cout << endl;
}
cout << n - (ans * ans * 2 - 1);
return 0;
}
T3
用桶存储秒了
#include <iostream>
#include <cstdio>
using namespace std;
int bucket[10];
int main(){
string s;
cin >> s;
for(int i = 0; s[i] != '\0'; i++){
bucket[s[i] - '0']++;
}
for(int i = 0; i <= 9; i++){
if(bucket[i]) cout << i << " = " << bucket[i] << endl;
}
return 0;
}
T4
模拟
#include<bits/stdc++.h>
using namespace std;
int mp[13] = {7, 0, 1, 3, 2, 9, 4, 6, 8, 5};
int main()
{
bool b = true;
int t;
cin >> t;
while(t--)
{
bool l = true;//远古代码,见谅
int cnt = 0;
string s;
cin >> s;
for(int i = 0; i < s.size(); i++)
{
if(s[i] >= '0' && s[i] <= '9') cnt += mp[s[i] - '0'];
else l = false;//有不是数字的
}
if(cnt % 17 <= 5 || l == false)//不符合要求
{
b = false;
cout << s << endl;
}
}
if(b) cout << "all ok" << endl;
}
T5
又是一道模拟
#include <iostream>
#include <cstdio>
using namespace std;
int a[5];
bool flag[5];
int main(){
for(int i = 1; i <= 4; i++){
cin >> a[i];
}
int n, m;
cin >> n >> m;
for(int i = 1; i <= 4; i++){
if(abs(a[i] - n) > m) flag[0] = flag[i] = 1;//flag0是检查总共的有没有故障
}
if(flag[1] && flag[2] && !flag[3] && !flag[4]) cout << "Warning:1 and 2";
else if(flag[3] && flag[4] && !flag[1] && !flag[2]) cout << "Warning:3 and 4";
else if(flag[0]) cout << "Warining:Emergency landing!";
else cout << "let's go";
return 0;
}
T6
小黑子记录c
p
d
的次数
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int main(){
int c = 0, p = 0, d = 0;
string a;
cin >> a;
for(int i = 0; i < a.length(); i++){
if(a[i] == 'c') c++;
if(a[i] == 'p') p++;
if(a[i] == 'd') d++;
}int cpdd = min(c, p);
cpdd = min(cpdd, d / 2);
cout << cpdd;
return 0;
}
T7
似乎有错,开ll会wa
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int a[1000005];
signed main(){
int n;
cin >> n;
for(int i = 1; i <= 5; i++){
a[i] = i;
}
for(int i = 6; i <= n; i++){
a[i] = a[i - 1] + i - 5;//注意不是a[i-5],因为最小的不能生
}cout << a[n];
return 0;
}
T8
不会
T9
和哥德巴赫猜想一样
#include <iostream>
using namespace std;
bool zhishu(int n){
for(int i = 2; i < n; i++){
if(n % i == 0) return 0;
}return 1;
}
int main(){
int n;
cin >> n;
for(int i = 4; i <= n; i += 2){
for(int j = 2; j <= (i - 2); j++){
if(zhishu(j) && zhishu(i - j)){
cout << i << '=' << j << '+' << i - j << endl;
break;
}
}
}
return 0;
}
T10
聪明的他们一定会把迷宫给走完,所以只需判断 ,即 的奇偶就行.
#include <iostream>
using namespace std;
int main(){
int n;
cin >> n;
if(n % 2 == 0) cout << "ACGO";
else cout << "admin";
return 0;
}
全部评论 2
666
2024-08-03 来自 广东
0顶
2024-08-03 来自 湖南
06
2024-08-03 来自 广东
0
有帮助,赞一个