蓝桥杯学习记录-21.2.23
一、测试练习
查找整数
1、问题描述
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式
第一行包含一个整数n。
第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9样例输出
2
数据规模与约定
1 <= n <= 1000。
2、解题思路
(1)首先是怎样表示查找后的位置,此时用数组的下角标表示
(2)然后是如何表示该数字是否存在,在此用整形变量f表示
3、代码
#include<iostream>
using namespace std;
int main()
{
int n,t;
int a[n];
int f=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cin>>t;
for(int j=0;j<n;j++)
{
if(a[j]==t)
{
f=1;
cout<<j+1<<endl;
break;
}
}
if(f==0)
cout<<"-1"<<endl;
return 0;
}
#include <stdio.h>
int main()
{
int n,t;
int a[n];
int f=0;
scanf("%d",&n);
int i,j;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&t);
for(j=0;j<n;j++)
{
if(a[j]==t)
{
f=1;
printf("%d",j+1);
break;
}
}
if(f==0)
printf("-1");
return 0;
}
二、视频学习
1、视频名称及链接
[枚举算法视频讲解]
(https://www.bilibili.com/video/BV1jE411g76D?p=7)
2、学习心得
(1)枚举就是根据提出的问题,列出该问题的所有的可能,并逐一列出的可能,检验每个可能解是否是问题的正解,如果是就采用,不是的话就判断下一个。
(2)题目具有的特点:解枚举范围是有穷的,检验条件是确定的
3、对应练习
回文数
(1)题目描述
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
按从小到大的顺序输出满足条件的四位十进制数。
(2)代码
#include<iostream>
using namespace std;
int main()
{
for(int a=1;a<10;++a)//千位
for(int b=0;b<10;++b)//百位
cout<<a*1000+b*100+b*10+a<<endl;
return 0;
}