蓝桥杯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;
}
相关推荐
学java的小菜鸟啊17 分钟前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp
我爱吃福鼎肉片20 分钟前
【C++】——list
c++·vector·list
溪午闻璐36 分钟前
C++ 文件操作
开发语言·c++
菜鸟求带飞_1 小时前
算法打卡:第十一章 图论part01
java·数据结构·算法
浅念同学1 小时前
算法.图论-建图/拓扑排序及其拓展
算法·图论
Antonio9151 小时前
【CMake】使用CMake在Visual Studio内构建多文件夹工程
开发语言·c++·visual studio
是小Y啦1 小时前
leetcode 106.从中序与后续遍历序列构造二叉树
数据结构·算法·leetcode
LyaJpunov1 小时前
C++中move和forword的区别
开发语言·c++
程序猿练习生1 小时前
C++速通LeetCode中等第9题-合并区间
开发语言·c++·leetcode
liuyang-neu1 小时前
力扣 42.接雨水
java·算法·leetcode