當前位置:首頁 » 編程語言 » java約瑟夫環問題

java約瑟夫環問題

發布時間: 2025-05-08 16:23:34

1. 新手如何學習編程

網站最基礎的是HTML--只可以做靜態網頁

做應用網站我推薦你學PHP,現在很流行,上手也很容易

去書店買點PHP的書就行

想成為程序員的可以用Visual Studio 2013 Express和《C++Primer 5th》。

3/3分步閱讀

首先你要找到一個學習的網站,一個好的網站可以幫助你更好的學習到知識。

2/3

找到網站之後就可以進行網上學野老習了,但是對於初學者而言,學習編程首先要學會計算機語言,什麼是計算機語言,舉個簡單的例子,就是說中國人與美國人交流,就要有一方學習另一方的語言,同樣,人要是學習計算機語言,就可以裂悉更好的使用計算機。

3/3

計算機語言,現在網上可以下載一些c語言,或者c+,這些都可以,了解基本的語言後就可以在網站上學習編程,當然,如果你是在老師的指導下,可以問你的老師。

2. 如何自學計算機編程

選擇一本相對基礎的編程語言書,學習的的同時記得對基礎的語法進行標記和注釋,加強自己的理解。像java入門到精通,編程思想,JAVA核心技術。

02
通過編程軟體,將書上的基礎知識逐一進行試驗。編程是一門應用的課程,知識看書本內容淺薄,應用過程會發現很多問題。

03
通過網上的公開的教學視頻進行學習,像慕課網,小甲魚,騰訊視頻等一些基礎視頻就非常不錯。

04
如果你已經能熟練的掌握一些JAVA語法,你可以在網上找一些經典問題和方法進行訓練,如漢羅塔問題,約瑟夫環問題,排序問題等等。

05
接著你可以嘗試一些小的實例,試著編一下小的實例,像我們經典的小游戲,貪吃蛇,俄羅斯方塊。

3. 用java在數組中實現約瑟夫環的問題, 要求寫明詳細注釋, 方法最好簡單一點, 初學者,

package ysfh;
/**
* 【約瑟夫環的問題】
* 有17個人(編號從1到16),按編號依次排列成一個圓環(編號16的接著編號為1 的人),從編號為1 的人開始報數,數到3的人退出圓環,如此循環,最後留下的那個人的編號是什麼?
* 1,2,3,4,5,6,7,8,,9,10,11,12,13,14,15,16
* 要求:請用面向對象的思想來處理這個問題並在下面寫出具體的代碼(可以選擇你熟悉的語言,如java/C++/C#等)
* @author Administrator
*
*/
public class Ysfh {

public static void main(String[] args) {
m(3,16);
}

public static void m(int m,int n){
int c = 1;
int[] ns = ntoarray(n);
while(isone(ns) == false){//如果數組中有一個以上的數不為0
for (int i = 0; i < ns.length; i++) {
if(ns[i] != 0 ){//等於0的都退出了 所以從所有不等於0的開始
if(c == m){//是第三個數 給他賦值0 並讓計數器c從1 開始
ns[i] = 0 ;
c = 1;
}else{//否則繼續計數器下一個
c++;
}
}

}
}

//循環輸出最後留下的數字
for (int i = 0; i < ns.length; i++) {
if(ns[i] != 0){//除0以外的數字 0代表刪除
System.out.println(ns[i]);
}
}

}

/**
* 將 n 轉換為數字 n=3 {1,2,3}
* @param n
* @return
*/
public static int[] ntoarray(int n){
int[] ns = new int[n];
for (int i = 0; i < ns.length; i++) {
ns[i] = i + 1;
}
return ns;
}

/**
* 判斷數組里是否只有一個數不為0
* @param ns
* @return
*/
public static boolean isone(int[] ns){
boolean isone = false;
for (int i = 0; i < ns.length; i++) {
if(isone == false && ns[i] != 0){
isone = true;
}else if(isone == true && ns[i] != 0){
return false;
}
}
return isone;
}
}

4. java的難度大么

java應該算編程語言里比較簡單的一門了。萬事開頭難,不管你用什麼語言入門。一般大學都是用c語言入門吧,以我自己為例的話,我是用c語言入門的,剛開始會不知道自己再幹嘛,因為有一些新的概念性的東西需要理解,不理解你就不知道自己在幹嘛~
但是你接觸一門語言之後,比如c,我們知道它是面向過程的,你可能會學會在一個項目下先聲明一個一個你想要實現的功能函數,然後一個一個去實現它,這時候你會發現你可以寫一些程序了,一些邏輯清晰,目標明確的程序了,語法能有多難?寫多了你會熟的不能再熟,真正難得應該是演算法,你不知道要怎麼實現你的想法,比如斐波那契,約瑟夫環等,你寫這些的時候會考慮到我要去api文檔里去查一個函數嗎?
時代在發展,有些東西不能很好的解決問題,或者說有更好的解決方式出現了,面向過程的語言做大項目開發的時候就存在很多問題,比如代碼難以維護之類的。
面向對象可以更好的處理此類問題,諸如c++,java之類的,這些較於c語言有什麼區別呢,我覺得它們的好處在於把很多常見的數據封裝成了類,說白了就是有很多很多別人寫好了的函數,你可以直接拿來用,不用自己寫函數了。當然這不是面向對象的思想,我覺得我只言片語也說不清楚。
學習java,語法什麼的不說,就是一個思想很重要,把一種類型的數據對象封裝成類,比如人,人可以吃飯,睡覺。你寫好了人這個類,你就可以在你的主程序了導入這個類,然後在你的主程序里人做了吃飯,也可以睡覺的事情。java有豐富的api,也就是別人給你封裝了好多好多類,你只需要用它就可以了,還免了你寫函數,怎麼能說難呢
寫程序就是要實現某些功能,有時候這些功能很大,我們不好直接實現它,所以有了分布式,一點一點的把大問題化小一個一個的去解決。所以會有很多小功能,不管怎麼說都是為了實現功能是吧。一種方式是寫,另一種方式當然也換湯不換葯。只是形式變了,c到java,函數變成了類的函數,提高了代碼的復用性對吧,事物的發展總是從不好操作到容易一點操作。java是一個更為簡便的語言
有人說python是最好的一門語言,為什麼,因為它更簡便,相當於java更加高級,比如他可以把函數當成參數來傳遞,100行的java代碼可能要用1000行c來表達,而python可能只要用10行就可以像計算機傳達相同的命令。
扯遠了,總之,不要覺得哪裡難啊,船到橋頭自然直,聽別人說難,也許你自己嘗試著理解其中的原理,你會覺得那個人真的是菜的不行~

熱點內容
怎麼查主網伺服器 發布:2025-05-08 20:37:04 瀏覽:213
linuxpython多版本 發布:2025-05-08 20:35:41 瀏覽:405
機器學習怎麼編譯代碼 發布:2025-05-08 20:03:51 瀏覽:64
華碩電腦音頻伺服器未響應 發布:2025-05-08 20:01:39 瀏覽:761
小米4清空緩存 發布:2025-05-08 19:56:36 瀏覽:776
編譯調度 發布:2025-05-08 19:46:11 瀏覽:636
福特蒙迪歐配置怎麼樣 發布:2025-05-08 19:41:25 瀏覽:456
sql降序和升序 發布:2025-05-08 19:41:21 瀏覽:948
萬能驅動win7解壓密碼 發布:2025-05-08 19:39:49 瀏覽:643
pythonappend1 發布:2025-05-08 19:35:32 瀏覽:512