藍橋專場小結

2021-10-25 20:00:52 字數 2360 閱讀 9374

最近在刷藍橋杯的題,沒有時間一道題一篇部落格的整理了,就跳著重點寫一寫吧,也加深一下自己的印象

特殊回文數,這道題就是乙個簡單的回文數題目,他要的是所有5位數、6位數中的回文數,同時要滿足這五個數或六個數加起來的和等於給定的數。

因為題目給定的n比較大,要考慮在for迴圈中新增條件,減少時間複雜度

我用了比較弱智的辦法去做,就不寫思路了,但是我用了vector,真的,好好用,一定要會用它!!!還有就是要注意一些邊界條件,邊界點,如:最高位不能為0!!不考慮這個的話就會測試樣例卡住的。

那這道題的話,就寫一寫vector的一些點吧:

vectora;//定義

sort( a.begin(), a.end() );//排序

a.erase( unique( a.begin(), a.end() ), a.end() );//去重

for(vector::iterator it=a.begin();it!=a.end();it++)//遍歷

cout<<*it《我覺得上邊這幾行**蠻重要的(蠻好用的!)

好了,剩下的沒了,上**

特殊回文數

#include using namespace std;

//最高位不可為0

int main()

if(5*i==n&&i!=0)

if(6*i==n&&i!=0)

}for(int i=0;i<10;i++)

if(4*i+2*j==n)

if(j!=0)

a.push_back(j*100000+i*10000+i*1000+i*100+i*10+j);}}

}for(int i=0;i<10;i++)

if(2*i+2*j+2*k==n)

if(i!=0)

if(k!=0)}}

}}

sort( a.begin(), a.end() );

a.erase( unique( a.begin(), a.end() ), a.end() );

for(vector::iterator it=a.begin();it!=a.end();it++)

cout<<*it《十進位制轉十六進製制,這道題的話,也用到了乙個東西——map,嗯!好用

這個題目的關鍵就是了解十進位制轉r進製的過程:不斷地模r取餘,倒序輸出,所以我的做法就是:只要num不等於0,就不斷的將模16的餘數存到陣列裡,然後num/16,反覆執行,直到跳出迴圈

然後用乙個map將十進位制的數字對應的十六進製制字元記錄,然後查map,加字串,最後輸出就可了(要注意倒序!!)

還有就是map型別的定義:

mapa;//<>裡前面是key的型別,後面是value的型別

還有乙個小坑坑就是:num給的就是0的時候,這時候是進不去迴圈的,一定要單獨說明!!!

好了,上**

十進位制轉十六進製制

#include using namespace std;

int main()

; //cout<>str;

char temp;

long long num=0;

for(int i=0;i最後一道,也是這幾道題裡最複雜的乙個十六進製制轉八進位制誒,千萬不要覺得都是進製的轉換,差別大了去了,不一樣不一樣

這個呢,是要找乙個橋梁----二進位制,要先轉成二進位制,再轉成八進位制,倒是沒有太難的點,就是麻煩一點,不寫了,直接看**好了(我個懶女人)

誒,不對,還是有點想寫寫的(喔,善變的女人)

數字型字元轉int型:char str='1'; int num=str-'0';

這時候的num就是1,(int的1)

int轉string型:

int temp=8;

stringstream ss;

ss《這時候的str_8就是"8"(string型別的8)

無了,上菜

十六進製制轉八進位制

#include #include #include using namespace std;

int main()

; string b[8]=;

int n;

cin>>n;

string num[n];

string str="";

string str_new;

string str_8;

int temp=0;

//string str_temp;

for(int i=0;i>num[i];

//str+=a[num[i]];

}//cout《結束,我要繼續奮鬥在藍橋的天地了,see you later~

藍橋刷題小結

題意 123321是乙個非常特殊的數,它從左邊讀和從右邊讀是一樣的。輸入乙個正整數n,程式設計求所有這樣的五位和六位十進位制數,滿足各位數字之和等於n 標籤 回文數 求各位數字之和 include include using namespace std int n bool check int x ...

小白專場 FileTransfer

題目的 是給定了一些計算機,一邊需要在不同的計算機之間連線網線,另一邊還要可以檢查兩台計算機之間是否已經連線好了,可以進行檔案的傳輸了,也就是檢查兩個元素是否已經在同乙個集合中了,所以filetransfer這道題目是一道非常典型的並查集的問題 根據之前定義的結構,查詢n次的最壞情況界是n 2,其實...

藍橋杯小結2 演算法篇(1 3)

區間k大數查詢 問題描述 給定乙個序列,每次詢問序列中第l個數到第r個數中第k大的數是哪個。這道題目呢,並不難,是演算法裡最簡單的一道了 畢竟是第一道嘛 我只是用了乙個vector就解決了問題,嗯,vector比我們初學時定義的陣列好用得多!這裡要總結一下vector的一些用法 其實之前也有寫過,我...