【蓝桥杯】省模拟赛

1.奇数次数

问题描述
给定一个仅包含数字字符的字符串,统计一下这个字符串中出现了多少个值为奇数的数位。
输入格式
输入一行包含一个字符串,仅由数字字符组成。
输出格式
输出一行包含一个整数,表示答案。
样例输入

123455

样例输出

4

样例输入

111222333111222333111222333

样例输出

18

#include <iostream>
#include <string>
using namespace std;
int main()
{
  string a;
  cin>>a;
  int sum=0,n=a.length();
  for(int i=0;i<n;i++)
  {
    if((a[i]-'0')%2==1) sum++;
  }
  cout<<sum;
  return 0;
}

2.最小步数

问题描述
小蓝要上一个楼梯,楼梯共有n级台阶(即小蓝总共要走n级)。小蓝可以走1级、2级或3级台阶。请问小蓝至少要多少步才能上到楼梯顶端?
输入格式
输入一行包含一个整数 n。
输出格式
输出一行包含一个数表示答案。
样例输入

9

样例输出

3

#include <iostream>
using namespace std;
int fun(int n)
{
  int sum=0;
  if(n>=3)
  {
    sum++;
    return sum+=fun(n-3);
  }
  else if(n==2) return 1;
  else if(n==1) return 1;
  else return 0;
}
int main()
{
  int n;
  cin>>n;
  cout<<fun(n);
  return 0;
}

3.最大极小值和最小极大值

问题描述
对于个例a[1], a[2]…a[n],.如果a[i满足ali< a[i-1]且a[i<a[i+ 1],则称a[i] 是一个极小值, 如果a[i]满浞a[i]>a[i-1]且a[i]>a[i+1],则称a[i]是一个极大值。给定一个序列,请找到极小值中最大的和极大值中最小的。
输入格式
输入的第一行包含一个整数n ,表示列的长度。第二行包含n个整数,相邻的整数之间使用一个空格分隔,表示给定的列。
输出格式
输出一包含两个整数,用一个空格分隔,分别表示极小值中最大的和极大值中最小的。输入保证至少存在一个极小值, 至少存在一个极大值。
样例输入

8
18244353

样例输出

35

#include <iostream>
using namespace std;
int main()
{
  int n,a[1001],max=0,min=10001;
  cin>>n;
  for(int i=0;i<n;i++)  cin>>a[i];
  for(int i=1;i<n-1;i++)
  {
    if(a[i]>a[i-1]&&a[i]>a[i+1])  min=(min<a[i]?min:a[i]);
    if(a[i]<a[i-1]&&a[i]<a[i+1])  max=(max>a[i]?max:a[i]);
  }
  cout<<max<<" "<<min;
  return 0;
}
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴NDIR

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值