当前位置:首页 » 编程语言 » 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行就可以像计算机传达相同的命令。
扯远了,总之,不要觉得哪里难啊,船到桥头自然直,听别人说难,也许你自己尝试着理解其中的原理,你会觉得那个人真的是菜的不行~

热点内容
android制作jar 发布:2025-05-08 20:53:45 浏览:912
编译器用英语 发布:2025-05-08 20:49:53 浏览:79
linux嵌入式培训视频 发布:2025-05-08 20:49:42 浏览:220
电影类平台如何选择服务器 发布:2025-05-08 20:48:15 浏览:716
加密狗故障 发布:2025-05-08 20:48:01 浏览:591
我的世界服务器天堂陨落 发布:2025-05-08 20:47:21 浏览:340
怎么查主网服务器 发布:2025-05-08 20:37:04 浏览:213
linuxpython多版本 发布:2025-05-08 20:35:41 浏览:406
机器学习怎么编译代码 发布:2025-05-08 20:03:51 浏览:64
华硕电脑音频服务器未响应 发布:2025-05-08 20:01:39 浏览:761