最近在刷藍橋杯的題,沒有時間一道題一篇部落格的整理了,就跳著重點寫一寫吧,也加深一下自己的印象
特殊回文數,這道題就是乙個簡單的回文數題目,他要的是所有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的一些用法 其實之前也有寫過,我...