题目描述
输入n个数,计算数字m的出现次数
输入格式
共3行
第一行 一个整数n
第二行 一行n个数,第i个数为ai,数与数之间空格隔开
第三行 一个整数m
输出格式
一行 一个整数,表示数值m出现的次数,没有则输出0
遍历数组,判断数字相等进行计数就行
#include <iostream>
using namespace std;
int main()
{
int a[100001] = {0},n,m,i,count=0;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
cin>>m;
for(i=0;i<n;i++)
if(a[i] == m)
count++;
cout<<count<<endl;
}
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n;
int a[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> m;
int cnt = 0;
for (int i = 0; i < n; i++) {
if (a[i] == m) {
cnt++;
}
}
cout << cnt;
return 0;
}
输入一个正整数n,表示布丁的数量。
每行输出一个由’0’和’1’组成的字符串,表示一种可行的吃布丁的顺序。其中0表示原味,1表示抹茶味。 请将可行的每种方案按字典序升序输入。
3
001
010
011
100
101
110
对于100%的数据,保证1≤n≤20;
#include <iostream>
using namespace std;
void f(int j, int n, int* a)
{
if (j == n) //如果吃的布丁的个数达到了n个,这时就代表一种情况结束了
{
int flag = 0;
for (int i = 0; i <= n - 3; i++)
{ //遍历该情况,如果存在连续三个相同的布丁,则这种情况flag取值变为1,并且不输出这种情况
if (a[i] == a[i + 1] && a[i] == a[i + 2] && a[i + 1] == a[i + 2])
flag = 1;
}
if (flag == 0) //如果flag取值依然为0,就代表这种情况符合要求,可以输出
{
for (int i = 0; i < n; i++)
{
cout << a[i];
}
cout << endl;
}
}
else
{
a[j] = 0; //讨论第j个布丁是原味的情况
f(j + 1, n, a); //先讨论0的情况,再讨论1的情况是为了按照字典序输出
a[j] = 1; //讨论第j个布丁是抹茶味的情况
f(j + 1, n, a);
}
}
int main()
{
int n = 0;
cin >> n;
int* p = new int[n];
f(0, n, p); //初始情况:吃了0个布丁,还有n个,数组p用来表示吃的情况
delete[] p;
return 0;
}