太戈编程我做过的题2

话不多说,这次上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;

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值