一个java题目求解!!!! 大学课程里面的老问题,Google一下答案一大把 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个是java经典题目,百度或谷歌就可以了 public class LastOne { public static void main(final String[] args) { System.out.println( getLastOne(11, 3) ); } public static int getLastOne (final int totalNumberOfPeople, final int leaveNumber) { int theLastOne = 0; int remainNumberOfPeople = totalNumberOfPeople; int leaveIndex = 1; boolean[] isValidPeopleArray = new boolean[totalNumberOfPeople + 1]; int isValidPeopleIndex = 1; for (isValidPeopleIndex = 1; isValidPeopleIndex <= totalNumberOfPeople; isValidPeopleIndex++) { isValidPeopleArray[isValidPeopleIndex] = true; } isValidPeopleIndex = 1; while (remainNumberOfPeople > 1) { if (isValidPeopleArray[isValidPeopleIndex]) { if (leaveIndex == leaveNumber) { isValidPeopleArray[isValidPeopleIndex] = false; remainNumberOfPeople --;// for (int ii = 1; ii <= totalNumberOfPeople; ii++) {// if (isValidPeopleArray[ii]) {// System.out.print(ii + " ");// }// }// System.out.println(""); } else { /* Do Nothing */ } leaveIndex ++; if (leaveIndex > leaveNumber) { leaveIndex = 1; } } else { /* Do Nothing */ } isValidPeopleIndex ++; if (isValidPeopleIndex > totalNumberOfPeople) { isValidPeopleIndex = 1; } } for (isValidPeopleIndex = 1; isValidPeopleIndex <= totalNumberOfPeople; isValidPeopleIndex++) { if (isValidPeopleArray[isValidPeopleIndex]) { theLastOne = isValidPeopleIndex; break; } } return theLastOne; }} 这里有个使用了JAVA语言特性的更简答的解法,请参考http://www.oschina.net/question/1251537_123179我的方法虽然相对繁琐一些,但是应该比较容易移植到其他语言上 怎么设置swing观感? String类,关于equals的问题? 转贴:Pocket PC上Jeode JVM中文显示解决之道 java循环中执行多线程问题.........? 运行是出错 原因为何? 端口问题 如何在已经画好的窗体上加 scrollpane? 2 8 10 16进制 jbuilder中运行类的默认命令是javaw,能不能改变成其它的什么命令? 一个小问题,请教大虾!:) 一个仿微信飞机大战的小问题 分享:IntelliJ IDEA 字体设置
public static void main(final String[] args) {
System.out.println( getLastOne(11, 3) );
} public static int getLastOne (final int totalNumberOfPeople, final int leaveNumber) {
int theLastOne = 0; int remainNumberOfPeople = totalNumberOfPeople;
int leaveIndex = 1; boolean[] isValidPeopleArray = new boolean[totalNumberOfPeople + 1];
int isValidPeopleIndex = 1; for (isValidPeopleIndex = 1; isValidPeopleIndex <= totalNumberOfPeople; isValidPeopleIndex++) {
isValidPeopleArray[isValidPeopleIndex] = true;
} isValidPeopleIndex = 1;
while (remainNumberOfPeople > 1) {
if (isValidPeopleArray[isValidPeopleIndex]) {
if (leaveIndex == leaveNumber) {
isValidPeopleArray[isValidPeopleIndex] = false;
remainNumberOfPeople --;// for (int ii = 1; ii <= totalNumberOfPeople; ii++) {
// if (isValidPeopleArray[ii]) {
// System.out.print(ii + " ");
// }
// }
// System.out.println(""); } else {
/* Do Nothing */
} leaveIndex ++;
if (leaveIndex > leaveNumber) {
leaveIndex = 1;
}
} else {
/* Do Nothing */
} isValidPeopleIndex ++;
if (isValidPeopleIndex > totalNumberOfPeople) {
isValidPeopleIndex = 1;
}
} for (isValidPeopleIndex = 1; isValidPeopleIndex <= totalNumberOfPeople; isValidPeopleIndex++) {
if (isValidPeopleArray[isValidPeopleIndex]) {
theLastOne = isValidPeopleIndex;
break;
}
} return theLastOne;
}
}
http://www.oschina.net/question/1251537_123179我的方法虽然相对繁琐一些,但是应该比较容易移植到其他语言上