计数
什么是计数题
计数题是 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;
}