话不多说,这次上21-25(时间较少)没账号的看后面
21. FizzBuzz提交
提交排名
题目描述
FizzBuzz游戏需要玩家报数时替换特定数字。请写一个程序,输入是一个正整数n, n<=100. 依次对1至n的整数打印,如该数能被3整除的时候打印Fizz;能被5整除的时候打印Buzz;如果既能被3又能被5整除的时候打印FizzBuzz;否则打印该数字。两次打印间有空格分开。
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
if(i%15==0)
cout<<"FizzBuzz"<<" ";
else if(i%3==0)
cout<<"Fizz"<<" ";
else if(i%5==0)
cout<<"Buzz"<<" ";
else
cout<<i<<" ";
}
return 0;
}
22. 质数生成提交
提交排名
题目描述
请写一个程序,输入是一个正整数n,输出1到n内所有质数,用空格分隔开。
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if(x<=1)return 0;
for(int i=2;i<=x-1;i++)
if(x%i==0)return 0;
return 1;
}
int main(){
int n;
cin>>n;
for(int p=2;p<=n;p++){
if(isPrime(p))
cout<<p<<" ";
else
cout<<"";
}
return 0;
}
23. 括号匹配提交
提交排名
题目描述
假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成。编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[10005],b,c,d,e,cnt,n,bnt;
char x[100005];
int main(){
cin>>x;
n=strlen(x);
for(c=1;c<=n;c++){
if(x[c-1]=='('){
cnt++;
a[cnt]=1;
}else{
if(x[c-1]==')'){
if(cnt>0){
cnt--;
}else{
cout<<"NO";
return 0;
}
}
}
}
if(cnt==0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}
24. 括号匹配加强版提交
提交排名
题目描述
字符串中只含有括号(),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{}。同级括号可以嵌套多层
#include <bits/stdc++.h>
using namespace std;
int angle1 = 0;
int round1 = 0;
int squar1 = 0;
int curly1 = 0;
char s[105];
void check_negative(int n){
if (n >= 0){
return;
} else {
cout << "NO";
exit(0);
}
}
int check_angle(){
return 1;
}
int check_round(){
if (angle1 == 0){
return 1;
} else {
cout << "NO";
exit(0);
}
}
int check_squar(){
if ((angle1 == 0) && (round1 == 0)){
return 1;
} else {
cout << "NO";
exit(0);
}
}
int check_curly(){
if ((angle1 == 0) && (round1 == 0) && (squar1 == 0)){
return 1;
} else {
cout << "NO";
exit(0);
}
}
void check_final(){
if ((angle1 == 0) && (round1 == 0) && (squar1 == 0) && (curly1 == 0)){
cout << "YES";
} else {
cout << "NO";
exit(0);
}
}
int main(){
cin >> s;
int l = strlen(s);
for (int i = 0; i < l; i ++){
if (s[i] == '<') angle1 ++;
if (s[i] == '(') round1 ++;
if (s[i] == '[') squar1 ++;
if (s[i] == '{') curly1 ++;
if (s[i] == '>') angle1 -= check_angle();
check_negative(angle1);
if (s[i] == ')') round1 -= check_round();
check_negative(round1);
if (s[i] == ']') squar1 -= check_squar();
check_negative(squar1);
if (s[i] == '}') curly1 -= check_curly();
check_negative(curly1);
}
check_final();
return 0;
}
25. 车厢调度提交
提交排名
题目描述
有一个火车站,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n<=1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车站C。 负责车厢调度的工作人员需要知道能否使它以a1,a2,…,an的顺序从B方向驶出,请来判断能否得到指定的车厢顺序。
#include<iostream>
using namespace std;
int n,stk[1000000],a[1000000],top=1,j=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
stk[top]=i;
while(stk[top]==a[j]){
top--;
j++;
}
top++;
}
if(j<n)
cout<<"NO";
else
cout<<"YES";
return 0;
}
没账号的看这里
21
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
if(i%15==0)
cout<<"FizzBuzz"<<" ";
else if(i%3==0)
cout<<"Fizz"<<" ";
else if(i%5==0)
cout<<"Buzz"<<" ";
else
cout<<i<<" ";
}
return 0;
}
22
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int x) {
if(x<=1)return 0;
for(int i=2;i<=x-1;i++)
if(x%i==0)return 0;
return 1;
}
int main(){
int n;
cin>>n;
for(int p=2;p<=n;p++){
if(isPrime(p))
cout<<p<<" ";
else
cout<<"";
}
return 0;
}
23
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int a[10005],b,c,d,e,cnt,n,bnt;
char x[100005];
int main(){
cin>>x;
n=strlen(x);
for(c=1;c<=n;c++){
if(x[c-1]=='('){
cnt++;
a[cnt]=1;
}else{
if(x[c-1]==')'){
if(cnt>0){
cnt--;
}else{
cout<<"NO";
return 0;
}
}
}
}
if(cnt==0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}
24
#include <bits/stdc++.h>
using namespace std;
int angle1 = 0;
int round1 = 0;
int squar1 = 0;
int curly1 = 0;
char s[105];
void check_negative(int n){
if (n >= 0){
return;
} else {
cout << "NO";
exit(0);
}
}
int check_angle(){
return 1;
}
int check_round(){
if (angle1 == 0){
return 1;
} else {
cout << "NO";
exit(0);
}
}
int check_squar(){
if ((angle1 == 0) && (round1 == 0)){
return 1;
} else {
cout << "NO";
exit(0);
}
}
int check_curly(){
if ((angle1 == 0) && (round1 == 0) && (squar1 == 0)){
return 1;
} else {
cout << "NO";
exit(0);
}
}
void check_final(){
if ((angle1 == 0) && (round1 == 0) && (squar1 == 0) && (curly1 == 0)){
cout << "YES";
} else {
cout << "NO";
exit(0);
}
}
int main(){
cin >> s;
int l = strlen(s);
for (int i = 0; i < l; i ++){
if (s[i] == '<') angle1 ++;
if (s[i] == '(') round1 ++;
if (s[i] == '[') squar1 ++;
if (s[i] == '{') curly1 ++;
if (s[i] == '>') angle1 -= check_angle();
check_negative(angle1);
if (s[i] == ')') round1 -= check_round();
check_negative(round1);
if (s[i] == ']') squar1 -= check_squar();
check_negative(squar1);
if (s[i] == '}') curly1 -= check_curly();
check_negative(curly1);
}
check_final();
return 0;
}
25
#include<iostream>
using namespace std;
int n,stk[1000000],a[1000000],top=1,j=1;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++){
stk[top]=i;
while(stk[top]==a[j]){
top--;
j++;
}
top++;
}
if(j<n)
cout<<"NO";
else
cout<<"YES";
return 0;
}