分享一個歌詞直接讓我笑噴的歌詞----之前我不聽歌的,畢竟第一次聽到,學習的目的就是找作業,或者創業,但就是一個字“掙錢”

下面直接開始正題吧
首先科普一些知識,全域變數定義的時候默認值為0 所以我在有些時候使用計數器時沒有賦初值,畢竟準備參加藍橋杯嘛,藍橋杯有時間限制的,所以少碼一個字母也可以節約時間 嘿嘿!!!還有一點,小編在寫博客的時候盡量把博客寫到最好,用最通俗的語言表達出我想表達的,希望大家看到之后能給小編提出建議,那些地方錯了希望能告訴小編!小編再去修正,一起努力!!!!!!!
今天分享三道藍橋杯簡單題
- 試題:統計字母頻率
- 試題:門牌制作
- 試題:年號字串
- 方法一 用進制轉換思想
- 方法二 用Excel表格
- 蛇形填數
- 方法一 代碼法
- 方法二 數學思想
- 關于小編
今天分享的已經不是最簡單了哦,比昨天更有意思點,嘿嘿 有些題可以用多種方法,小編在這里都告訴你們!!
試題:統計字母頻率
**【題目要求】輸入一個字串,統計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 大家可以加我好友 然后一起學習噠
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272932.html
標籤:其他
上一篇:淺析C++深淺拷貝、寫時拷貝
下一篇:一文看懂Python面向物件
