蓝桥杯省赛2015年——奇妙的数字
生活随笔
收集整理的這篇文章主要介紹了
蓝桥杯省赛2015年——奇妙的数字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目】
小明發現了一個奇妙的數字。它的平方和立方正好把0~9的10個數字每個用且只用了一次。
你能猜出這個數字是多少嗎?
【反思】
剛開始的時候看錯題目了,所以題目記得看仔細
第一次的時候用的是創建一個容量為10的數字,遍歷平方和立方數上的每一位數字,用1在數組上占位,檢查一個位上是否有且僅有一個數,但是不知道為啥一直是錯的
突然知道自己哪里錯了,把這個也放上來
錯誤原因:*memset第三個參數不是數組的長度其實是所占空間,一定要用sizeof!!! *之前一直都用的10所以錯的
然后memset頭文件string/cstring,好像都可以但是藍橋杯測試系統不清楚是不是都可以,下次試驗一下再補充
然后看了老師的講解,這道題其實思路還挺清晰,但是有幾個細節還挺值得注意,所以po出來提醒一下自己,算是一種積累,其實也是比較基礎的東西啦,看過很多次了編程的時候一直記不住,希望下次需要的時候可以想起來
【完整代碼】
#include<iostream> #include<string> #include<set> #include<sstream> using namespace std; void i2s(int num,string &str) {stringstream ss;ss<<num;ss>>str; } bool check(string s) {set<char> ss;for(int i=0;i<s.length();i++)ss.insert(s[i]);return s.size()==10&&ss.size()==10; } int main() {for(int i=1;i<100000;i++){string s1,s2;i2s(i*i,s1);i2s(i*i*i,s2);if(check(s1+s2)){cout<<i<<endl;break;}}return 0; }【數字轉換為字符串】
#include<string> #include<sstream> void i2s(int num,string &str) {stringstream ss;ss<<num;ss>>str; }【set類】
set類是集合類,在不需要考慮重復數字的情況下很有用
總結
以上是生活随笔為你收集整理的蓝桥杯省赛2015年——奇妙的数字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PCWorld:HTML5会终结移动应用
- 下一篇: 第六届蓝桥杯--奇妙的数字和移动距离