【比赛题解】2021蓝桥杯青少组省赛(中级组)题解

目录

前言

一、字符串

题目描述

样例输入

样例输出

题目解析

AC代码1

AC代码2 

二、剪绳子

题目描述

样例输入

样例输出

题目解析

AC代码 

三、求和

题目描述

样例输入

样例输出

题目解析

AC代码 

四、求和比较

题目描述

样例输入

样例输出

题目解析

AC代码1(深度搜索)

AC代码2(动态规划) 

五、最大价值

题目描述

样例输入

样例输出

题目解析

AC代码

结束语

前言

        大家好,这一篇题解主要是关于2021那届蓝桥杯的题解。

一、字符串

题目描述

        给定一个字符串,然后将字符串倒序输出。
        输入描述:一个字符串S(2<S长度<100)
        输出描述:将字符串S倒序输出

样例输入

abc

样例输出

cba

题目解析

        这道题是一个开胃菜,很简单,分分秒解答,for循环即可完成。

        给两个方法,一种是string类型,一种是传统的char[]类型。

AC代码1

#include<string>//使用字符串头文件 
#include<iostream>//使用输入输出流头文件 
using namespace std;//使用标准名字空间 
string s;//定义字符串类型变量s 
int main(){//主函数开始
	getline(cin,s);//整行输入字符串s 
	for(int i=s.size()-1;i>=0;i--){//for循环,计数器i从s的长度-1自减到0,共循环s的长度次 
		cout<<s[i];//输出s的i号元素 
	} 
	return 0;//主函数结束,返回0 
} 

AC代码2 

#include<cstring>//调用C语言字符串头文件 
#include<iostream>//调用输入输出流头文件 
using namespace std;//使用标准名字空间 
char s[100];//定义字符数组类型变量s 
int main(){//主函数开始 
	cin.getline(s,100);//整行输入含有100个字符的字符串s 
	for(int i=strlen(s)-1;i>=0;i--){//for循环,计数器i从s的长度-1,自减到0,共循环s的长度次 
		cout<<s[i];//输出s的i号元素 
	}
	return 0;//主函数结束,返回0 
}

二、剪绳子

题目描述

        一条绳子从中间剪一刀可以剪成两端绳子;如果对折1次,中间剪一刀可以剪出3段绳子;如果连续对折2次,中间剪一刀可以剪出5段绳子;那么,连续对折n次,中间剪一刀可以剪出多少段绳子?
        输入描述:输入一个正整数n(2<n<20)作为绳子对折的次数
        输出描述:输出一个正整数,表示对折n次后绳子中间剪一刀可以剪出的绳子的段数

样例输入

3

样例输出

9

题目解析

        这是一道入门级别的题,找到公式:ans=2^n+1。

        但越简单的题越是暗藏玄机,用了for循环,一算,提交:“诶?怎么TE了?”那是因为这一题推荐使用cmath中的pow函数,代码为pow(2,n)+1。

        好了,相信大家都迫不及待了吧,好,上代码,这里我喜欢用函数来封装一个运算的过程,因为这样程序更结构化。

AC代码 

#include<iostream>//调用输入输出流头文件 
#include<cm
  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值