想做些有關“算法”的練習題,在網上無意間看到了一道很經典的算法題——猴子分桃,於是百度了一下,才發現這道題的相關文檔很多很多,但最多的也就是使用C++或者Java來解決這道題,而自己也是初次接觸C++。
1.先介紹一下C++使用最常見的編輯器——dev cpp.附上下載地址:(http://bloodshed-dev-c.en.softonic.com/download);
2.;
3.接着選好所要下載好的地址;
4.剩下的事情就是“一路默認”,直至安裝完成。
然后就剩啟動Dev C++,啟動完Dev c++后,就先新建一個項目吧:可以按ctrl+N或者直接點“文件”——“新建”——“源代碼”;待你寫好代碼,然后就需要
點擊運行之后,先選擇“運行”——“編譯”——“運行”或者直接點擊“運行”——“編譯運行”就可以運行項目了。
還有一種新建項目的方法:
“文件”——“新建”——“工程”,然后按上圖選擇Console Application,再寫好文件名即可。運行方法同上。只是首次在運行C++代碼時,居然出現了“閃屏”的現象,最后原來是在return 0之前加上一句“ system("PAUSE"); ”,,,,,有的時候加上“getchar();”貌似也可以使程序正常運行。(兩者的區別,我也不太懂。。。。)
附上C++的第一道算法題:
/**海灘上有一堆桃子,五只猴子來分。第一只猴子把這堆桃子憑據分為五份,多了一個,這只 * 猴子把多的一個扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 * 一個,它同樣把多的一個扔入海中,拿走了一份,第三、第四、第五只猴子都是這樣做的, 問海灘上原來最少有多少個桃子?**/
運行C++代碼:
#include <stdio.h> #include <stdlib.h> int monkey_peach(int n) { int *p; int i; p = (int *)malloc(n * sizeof(int)); if (p == NULL) return -1; p[0] = 1; while (1) { for (i = 1; i < n; i++) { if ((p[i-1] * 5 + 1) % 4 != 0) break; p[i] = (p[i-1] * 5 + 1) / 4; } if (i >= n) break; p[0]++; } for (i = 0; i < n; i++) { printf("%d ", p[i]); } printf("\n"); printf("peach count = %d.\n", 5 * p[n-1] + 1); return 0; } int main() { monkey_peach(5); system("PAUSE"); return 0; }
只是現在看這段C++的代碼,自己還欠缺理解,再研究研究……
運行結果:
突然也就覺得C++很神奇,願自己以后多學學!