2014年5月30日 星期五

程式心得 + 台中女中程式解題系統 - a042: 13的次方

截至目前為止,我在此系統練習了大約60題,大部分都是基礎的練習;雖然題目較為簡單,但我還是有粗心大意的時候XDDD 

大部分都是沒仔細看清楚題目要求,想要快點交出去惹的禍,有點過於毛躁。有些題目在寫的時候,感覺特別有趣,像是 a049: 斜紋地硨 、 a041: 收集冰棒棍 等。 有些題目比較偏觀念,在寫的時候得多想想。

目前注意到的問題有幾點:

  1. 空間大小問題
  2. C++輸出格式
  3. 函數、迴圈、演算法的使用
這幾個問題,是我練習時覺得比較繁瑣的地方;其實會寫到演算法,是想讓自己的程式能力有所增長,這期間還重新把資料結構拿出來重讀 ( 非常難專心閱讀,思緒常常跑掉... )。最近常有思緒雜亂的問題,這件事情讓我覺得很難過 ( 就像是我現在在打文章,但可能會想說等等要做什麼事情、還有甚麼東西得做... );程式寫到一半會想東想西,反正就是很不專心,這部分我覺得讓我寫程式受到很嚴重的挑戰。

我喜歡寫程式動腦的過程,但時常發現自己寫程式有很多毛病,而且不太能有解決的辦法,但我希望在程式這部分有所成長,所以寫 Blogger 來砥礪自己,希望自己能進步,而且有效率的成長。


==========================================================================
a042: 13的次方 (**) 內有題目。

這題我覺得很有趣,它使用了兩個觀念
  1. 對13的了解
  2. 十位數的次方邏輯
一開始我以為這題是要問13的N次方有幾位數XDDDD ( 這就是我不專心的證明XD ),後來在看了一次題目才知道只求10位數,這題我做錯兩次,一次就是看錯,另外就是10位數的邏輯有點問題,當然最後還是做出來了!!  這題也是我覺得很有趣的一題,下面附上參考程式碼。


#include "iostream"  
#include "cmath"  
using namespace std;      
  
int main(){    
    int num;  
    while(cin >> num){  
        unsigned int i=1;  
        while(num>0){  
            i *=13;  
            i %=100;  
            num--;  
        }  
        cout << (int)((i%100)/10) << endl;  
    }  
    return 0;    
}

2014年5月24日 星期六

高中生程式解題系統 a007: 判斷質數

這題真的非常的怪異="= 應該說我寫的程式逾時了Orz

第一版
#include "iostream"
using namespace std; 
int main()
{
    int intA,intB,intC;
    while (cin >> intA){
    int boolA = 1;
    for(intB=2;intB<(intA>>1);intB++){
        for(intC=1;intC<(intA>>1);intC++){
            if(intA %(intB*intC)==0)
                boolA= 0;
                break;
        }
    }
    if(boolA==1)
        cout << "質數" << endl;
    else
        cout << "非質數" << endl;
    }
    return 0;
}
這版逾時超過兩秒

第二版
#include "iostream"
#include "cmath"
using namespace std; 
int main()
{
    int intA,intB,intC;
    while (cin >> intA){
        int boolA = 1;
        intC = (int)(sqrt((double)intA));
        for(int i = 2; i<=intC;i++) {
            if(intA % i == 0) {
                boolA = 0;
                break;
        }
    }
    if(boolA==1)
        cout << "質數" << endl;
    else
        cout << "非質數" << endl;
    }
    return 0;
}

這版也逾時了Q_Q

討論區有人用 Sieve of Eratosthenes miller-Rabin 來寫 (不是基礎題嗎Q_Q 怎麼要用演算法...),另外就是使用列表法把 sqrt(2147483647) 拿來判斷...,只能說這題算是目前我碰到的問題最困難的一個!!

UVa Online Judge 程式練習

最近在尋找有關程式練習題的地方,最後找到了 UVa Online Judge 這個網站。

簡單的註冊完後,點擊左邊的 Browse Problems 在右邊可以看到題目 ( 如下圖 )。



另外還有 高中生程式解題系統 這裡也能做程式練習,而且是中文的XD

2014年5月18日 星期日

Linux 初步學習 ( CentOS 6.0 )

這篇會慢慢變長,主要是用來記錄 Linux 的學習歷程。

首先要準備:
1. VisualBox :VisualBox Downloads

我的 VisualBox 是在裝 Genymotion 時順便安裝的,所以這部分就沒甚麼特殊教學 XD

VisualBox 樣式


2. Putty :Putty Download

Linux 學習目前主要透過 鳥哥的 Linux 私房菜 ,但我不想一直切換 VisualBox 的畫面,所以想透過 Putty 來輸入指令,畢竟 Linux 我想學的也是指令的操作,而不是圖形介面 XD

目前只有這兩點需求吧 XD ,安裝的部分就等有心情再整理上來 ( 畢竟截圖,貼圖有點繁複 )。


2014年5月3日 星期六

創用CC規範

  其實很久就知道有這個規範 ( 其實是有看到這些圖,但不知道這些圖在幹嘛XDD ),關於引用以及轉貼的規範。當然啦,可能還要再適應一陣子,但我會努力的。

 參考:台灣創用CC計畫 姓名標示-相同方式分享 3.0 台灣