备战蓝桥杯(计数)

计数

什么是计数题

计数题是 OI 中的一大题目类型,由于难度大、不那么套路而成为各类考试的热门。

I. 基础计数

真题

蓝桥杯2020年第十一届省赛真题-分类计数

题目链接:https://www.dotcpp.com/oj/problem2580.html

题目描述

输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。

输入

输入一行包含一个字符串。

输出

输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。

样例输入

1+a=Aab

样例输出

1

3

1

这个题简单 大家应该是一次过吧

#include<bits/stdc++.h>
using namespace std;
int main(){
    
    
	char s[10010];
	cin>>s;
	int a=0,b=0,c=0;
	for(int i=0;i<strlen(s);i++){
    
    
		if(s[i]>='0'&&s[i]<='9') c++;
		else if(s[i]>='a'&&s[i]<='z') a++;
		else if(s[i]>='A'&&s[i]<='Z') b++;
	}
	cout<<b<<endl;
	cout<<a<<endl;
	cout<<c<<endl;
	
}

倍数

题目链接 : https://www.lanqiao.cn/problems/583/learning/

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

请问在 1 到 2020 中,有多少个数既是 4 的整数倍,又是6 的整数倍

#include <iostream>
using namespace std;
int main()
{
    
    
  // 直接模拟
  int ans=0;
  for(int i=1;i<=2020;i++)
    {
    
    
      if(i%4==0&&i%6==0)
      ans++;
    }
    cout<<ans<<endl;
  return 0;
}

字符计数

题目链接: https://www.lanqiao.cn/problems/160/learning/
题目描述

给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。

元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。

输入格式:

输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过 100。

输出描述

输出两行,第一行包含一个整数,表示元音字母的数量。

第二行包含一个整数,表示辅音字母的数量。

输入输出样例

输入

lanqiao

输出

4
3

#include <bits/stdc++.h>
using namespace std;
int main(int argc, char *argv[])
{
    
    
  char s[100];
  int n=0,m=0,t=0;
  cin>>s;
  while(s[n]!='\0')
  {
    
    
    switch(s[n])
    {
    
    
      case 'a':
      case 'e':
      case 'i':
      case 'o':
      case 'u':m++;break;
      default:t++;break;
    }
    n++;
  }
  
  printf("%d\n%d",m,t);// 请在此输入您的代码
  return 0;
}

质数

这个可以去看一下之前写的博客 素数筛选法:https://blog.csdn.net/qq_54729417/article/details/115708317?spm=1001.2014.3001.5502

题目链接: https://www.lanqiao.cn/problems/608/learning/

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

我们知道第一个质数是 2、第二个质数是 3、第三个质数是 5……

请你计算第2019 个质数是多少?

#include <iostream>
using namespace std;
//这里没有去使用欧拉速筛
int isprime(int x)
{
    
    
  for(int i=2;i*i<=x;i++)
  {
    
    
    if(x%i==0)
    return 0;
  }
  return 1;
}
int ans=1;
int main()
{
    
    
  for(int i=2;i<20000;i++)
  {
    
    
    if(ans==2019&&isprime(i))
    cout<<i;
    if(isprime(i))
    {
    
    
      ans++;
    }
  }
  //cout<<"17569";
  return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_54729417/article/details/123675602