蓝桥杯C++2020年5月stema测评真题参考答案

第一题 分段输出

cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
    int N;
    cin>>N;
    if(N>=90) cout<<"A";
    if(N>=80&&N<90) cout<<"B";
    if(N>=70&&N<80) cout<<"C";
    if(N<70) cout<<"D";
    return 0; 
} 

第二题 小球反弹高度

cpp 复制代码
#include<iostream>
using namespace std;
int main()
{
    int n,sum=0,h;
    cin>>n;
    sum=sum+n;
    for(int i=1;i<=10;i++)
    {
        n=n/2;
        sum=sum+n*2;
    }
    cout<<n<<endl;
    sum=sum-n;
    cout<<sum<<endl;
    return 0;
}

第三题 求最大值、最小值和平均值

cpp 复制代码
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    int a[10],sum=0;
    for(int i=0;i<=9;i++)
    {
        cin>>a[i];
    }
    sort(a,a+10);
    cout<<a[9]<<",";
    cout<<a[0]<<",";
    for(int i=0;i<=9;i++)
    {
        sum=sum+a[i];
    }
    cout<<sum/10.0;
    return 0;
}

第四题 回文数

方案一、

cpp 复制代码
#include<iostream>
using namespace std;
int weifun(int o)
{
    int i=0;
    while(o>=1)
    {
        o=o/10;
        i++;
    }
    return i;
}
int huifun(int m)
{
    int b=0,k=0,wei=0,a=1;
    b=m;
    wei=weifun(m);
    for(int j=1;j<wei;j++)
    {
        a=a*10;
    }
    m=0;
    for(int i=1;i<=wei;i++)
    {
        k=b/10;
        b=b%10;b=b*a;
        m=m+b;
        b=k;
        a=a/10;
    }
    return m;
}
int main()
{
    int N,sum=0,o;
    cin>>N;
    for(o=1;o<=N;o++)
    {
    if(o==huifun(o))
    {
    cout<<o<<endl;
    sum++;
    }
    }
    cout<<"*"<<sum<<endl;
    return 0;
}

方案二、

cpp 复制代码
//转成字符串的方式判断
#include <bits/stdc++.h>
using namespace std;
int main() {
	string s;
	int n, len, cnt = 0, i, j;
	cin >> n;
	for ( i = 1; i <= n; i++) {
		s = to_string(i);
		len = s.size();
		for (j = 0; j < len / 2; j++) {
			if (s[j] != s[len - j - 1] ) break;
		}
		if (j == len / 2) {
			cout << s << " ";
			cnt++;
		}
	}
	cout << "*" << cnt;
	return 0;
}

第五题 平年闰年判断

方案一、

cpp 复制代码
#include<iostream>
using namespace std;
bool run(int m)
{
    if(m%100==0)
    {
    if(m%400==0) return 1;
    else return 0;
    }
    else if(m%4==0) return 1;
    else return 0;
}
int main()
{
    int nian,yue,ri,a,b=0,today=6,yu;
    int pyue[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int ryue[12]={31,29,31,30,31,30,31,31,30,31,30,31};
    cin>>nian>>yue>>ri;
    a=151;
    for(int i=2020;i<=nian;i++)
    {
        if(nian-i>=1) 
        {
            if(run(i)==1) b=b+366;
            else b=b+365;
        }
        else 
        {
        for(int j=0;j<yue-1;j++)
        {    
            {
            if(j!=1) b=b+pyue[j];
            else if(run(nian)==1) b=b+ryue[j];
            else b=b+pyue[j];
            }
        }
        b=b+ri;
    }
    }
    cout<<b-a<<endl;
    yu=(b-a)%7;
    today=(today+yu)%7;
    cout<<"*"<<today<<endl;
    return 0;
}
相关推荐
K.L.Zous8 分钟前
Arduino键盘
c++
fpcc20 分钟前
c++应用网络编程之十五Nagle算法
网络·c++
Ning_.22 分钟前
力扣第 66 题 “加一”
算法·leetcode
kitesxian23 分钟前
Leetcode437. 路径总和 III(HOT100)
算法·深度优先
YSRM25 分钟前
异或-java-leetcode
java·算法·leetcode
木向28 分钟前
leetcode:222完全二叉树的节点个数
算法·leetcode
Ning_.35 分钟前
力扣第 67 题 “二进制求和”
算法·leetcode
IT 青年42 分钟前
数据结构 (11)串的基本概念
数据结构
萧萧玉树1 小时前
分布式在线评测系统
前端·c++·后端·负载均衡
bbppooi1 小时前
堆的实现(完全注释版本)
c语言·数据结构·算法·排序算法