分享一个歌词直接让我笑喷的歌词----之前我不听歌的,毕竟第一次听到。学习的目的就是找工作,或者创业,但就是一个字“挣钱”
下面直接开始正题吧
首先科普一些知识,全局变量定义的时候默认值为0 所以我在有些时候使用计数器时没有赋初值。毕竟准备参加蓝桥杯嘛,蓝桥杯有时间限制的,所以少码一个字母也可以节约时间 嘿嘿!!!还有一点,小编在写博客的时候尽量把博客写到最好,用最通俗的语言表达出我想表达的,希望大家看到之后能给小编提出建议,那些地方错了希望能告诉小编!小编再去修正。一起努力!!!!!!!
今天分享三道蓝桥杯简单题
今天分享的已经不是最简单了哦。比昨天更有意思点。嘿嘿 有些题可以用多种方法,小编在这里都告诉你们!!
试题:统计字母频率
**【题目要求】输入一个字符串,统计26个字母出现的频率并输出 输入的数是小写 **
二话不说直接上代码:
#include<bits/stdc++.h>
using namespace std;
string s;
int p;
int vis[200];
int main(){
cin>>s;
for(int i=0;i<s.length();i++){
p=s[i]-'a';
vis[p]++;
}
for(int i=0;i<26;i++){
cout<<vis[i]<<" ";
}
return 0;
}
这道题比较简单.就是直接循环来判断这个字母是多少,将字母转换成数字,在对应的下标 自加一 ;这样输出的最终就能是我们想要的结果了!
【临时小科普】——论(数组名).length()与.size()的区别
- length属性:用于获取数组长度。
- length()方法:用于获取字符串长度。
- size()方法:用于获取泛型集合有多少个元素。
试题:门牌制作
【向题描述】小蓝要为一条街的住户制怍门牌号。
这条街一共有2020位住户,门牌号从1到2020编号。小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7.请问要制作所有的1到2020号门牌,总共需要多少个字符2?
上代码咯---->
#include<bits/stdc++.h>
using namespace std;
int ans;
int f(int n){
int t;
while(n>0){
t=n%10;
n/=10;
if(t==2) ans++;
}
}
int main(){
for(int i=1;i<=2020;i++){
f(i);
}
cout<<ans;
}
这个题的主要思路就是 将需要数字的每一位都分离出来 如果有一个带2的就让计数器加一;最终得出自己想要的结果。
这些可都是蓝桥杯原题哦。这些可就太简单了,我相信大家肯定没有被难到的。下面就要开始加大难度咯!!!.
试题:年号字串
*问题描述】小明用字母A对应数字1,B对应2,以此类推,用Z对应28。对于27以上的数字,小明用两位或更长位的字符串来对应,例如MA对应27,AB对应28,AZ对应52,LQ对应329 请问2019对应的字符串是什么?
方法一 用进制转换思想
#include<bits/stdc++.h>
using namespace std;
void f(int n){
int num=0;
int arr[100];
while(n>0){
arr[num++]=n%26;
n/=26;
}
for(int i=num-1;i>=0;i--)
{
cout<<arr[i]<<" ";
}
}
int main()
{
f(2019);
return 0;
}
这个题其实还可以,就是将一个数转换成26进制,然后再转换成字母,求出结果, 但是,这个是个填空题呀。
方法二 用Excel表格
咱们可以直接用Excel表格呀你们看效果
小编Excel并不是很会用 但拖动也就不到一分钟,可比写代码香多了。当然有能力的小伙伴可以直接拿笔用数学方法算
蛇形填数
方法一 代码法
这个题就有些难度了。我还是选择先写代码再解释我的代码思想吧!!
#include<bits/stdc++.h>
using namespace std;
int a[1000][1000];
int x=1,y=1,k=1,cnt=1; //x代表行 k代表列 k代表需要填的行
int main(){
a[x][y]=cnt++;
while(a[20][20]==0){
a[x][++y]=cnt++;
for(int i=k;i>=1;i--)
a[++x][--y]=cnt++;
k++;
a[++x][y]=cnt++;
for(int i=k;i>=1;i--)
a[--x][++y]=cnt++;
k++;
}
cout<<a[20][20];
return 0;
}
规则:右1位 y+1 下斜方向填 x+1 y-1 下1行 x+1 上斜方向填数 x-1 y+1
其实总的思想就是他是s型嘛,两个一轮回。所以一次循环直接输出一个拐弯 。这样就能达到我们的目的了。
其实这个题写出来不难,但如果想的话,可能嘚花点时间去想。毕竟没有思路嘛一开始
。毕竟才10分,我们直接看方法二吧
方法二 数学思想
介绍也在图里,了,下面我用我自己的草纸写出来吧 因为他是让我们求20行20列 所以只需要看最中间的数即可。
字好丑。。。。哈哈哈,凑合看看嗷!!
其实就是一个简单的等差数列,可还能接受?不能接受 就只能打回高一再学一遍了!!哦 !是高二学的,。
好了 今天的分享就到这里了,了解这些算法的思想,努努力,争取学好编程。数学和编程是分不开的。所以大家努努力 了解了解嗷!!!!!!!!!!
关于小编
我知识一名普通职业本科的一名小白。先在说出我学校的名,别人都怀疑我是专科生,哎、或许以后面试工作也会这样吧,所以努努力争取大学拿一个四级证,参加点比赛,拿点奖项!!
小编QQ:2206730228 大家可以加我好友 然后一起学习哒