`
jythoner
  • 浏览: 602853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java每日一题23

阅读更多
来个数学性强的,c语言书中找到的

有13个人围成一圈,从第一个人开始顺序报号1、2、3。凡是报3的退出圈子,找出最后留在圈子中的人原来序号。

9
3
分享到:
评论
29 楼 javaboy2006 2009-03-13  
#include "stdio.h"
#include "stdlib.h"

void main()
{
  char players[20][20]; 
  int isOut[20];
  int i;
  int count=0;
  int num;
  int start;
  int flag=0;
  int outNum=0;

  printf("请输入参加出圈游戏人员名单:\n");
  for(i=0;i<20;i++)
  {
	  printf("第%d位:",i+1);
	  scanf("%s",players[i]);
	  if(players[i][0]=='!')
		  break;
	  count++;

  } 
    printf("请输入出圈数字:");
	scanf("%d",&num);
	printf("请输入起始位置:");
	scanf("%d",&start);
	printf("共有%d人参加, 出圈数字是:%d, 起始位置是(%d):%s\n",count,num,start,players[--start]);
    printf("开始游戏…\n");
	for(i=0;i<20;i++)
	{
		isOut[i]=1;
	}
	
      	
		   do
		   {
			   if(start==count)     // 如果循环一周则从零开始!
			       start=0;

				if(isOut[start]!=0)    //检测是否出圈,否则
					flag++;
				if(flag==num)
				{
					isOut[start]=0;
					printf("%s 出圈\n",players[start]);
					outNum++;
					flag=0;
				}
				start++;
					
		   }while(outNum<count);
	  
}
28 楼 tobeno1 2009-03-10  
tobeno1 写道

zhangsatanyang 写道来个更简单的 C代码 &amp;nbsp;&amp;nbsp;#include&amp;nbsp;&amp;lt;iostream&amp;gt;&amp;nbsp;&amp;nbsp;using&amp;nbsp;namespace&amp;nbsp;std;&amp;nbsp;&amp;nbsp;int&amp;nbsp;main()&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int&amp;nbsp;r;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(int&amp;nbsp;i=2;&amp;nbsp;i&amp;lt;=13;&amp;nbsp;++i)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;r=(r+3)%i;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cout&amp;lt;&amp;lt;"Result&amp;nbsp;is&amp;nbsp;"&amp;lt;&amp;lt;r+1&amp;lt;&amp;lt;endl;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&nbsp; #include &amp;lt;iostream&amp;gt;using namespace std;int main(){&nbsp; int r;&nbsp; r=0;&nbsp; for(int i=2; i&amp;lt;=13; ++i)&nbsp;&nbsp;&nbsp; r=(r+3)%i;&nbsp; cout&amp;lt;&amp;lt;"Result is "&amp;lt;&amp;lt;r+1&amp;lt;&amp;lt;endl;}C的能够解释下么?


JAVAEYE引用后出这么多空格代码的bug怎么没有人改过来捏?
27 楼 tobeno1 2009-03-10  
zhangsatanyang 写道

来个更简单的 C代码 &nbsp;&nbsp;#include&nbsp;&lt;iostream&gt;&nbsp;&nbsp;using&nbsp;namespace&nbsp;std;&nbsp;&nbsp;int&nbsp;main()&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;r;&nbsp;&nbsp;&nbsp;&nbsp;r=0;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i=2;&nbsp;i&lt;=13;&nbsp;++i)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r=(r+3)%i;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;"Result&nbsp;is&nbsp;"&lt;&lt;r+1&lt;&lt;endl;&nbsp;&nbsp;}&nbsp;&nbsp;  #include &lt;iostream&gt;
using namespace std;
int main()
{
  int r;
  r=0;
  for(int i=2; i&lt;=13; ++i)
    r=(r+3)%i;
  cout&lt;&lt;"Result is "&lt;&lt;r+1&lt;&lt;endl;
}


C的能够解释下么?
26 楼 zhangsatanyang 2009-03-09  
来个更简单的

  #include <iostream>
using namespace std;
int main()
{
  int r;
  r=0;
  for(int i=2; i<=13; ++i)
    r=(r+3)%i;
  cout<<"Result is "<<r+1<<endl;
}
25 楼 zhangsatanyang 2009-03-09  
package arithmetic;

import java.util.ArrayList;
import java.util.List;

/**
 * @author satan 有13个人围成一圈,从第一个人开始顺序报号1、2、3。凡是报3的退出圈子,找出最后留在圈子中的人原来序号。
 */
public class QueryTheNumber {

	private List<Integer> initList = new ArrayList<Integer>();
	private int result;
	private final static int NUMBER = 14;

	private void init() {
		for (int i = 1; i < NUMBER; i++) {
			initList.add(i);
		}
	}

	private int play(List<Integer> list, int count) {
		List<Integer> modifiedList = null;
		if (list.size() == 1) {
			result = list.get(0);
			return result;
		} else {
			modifiedList = new ArrayList<Integer>();
			for (int i : list) {
				count++;
				if (count == 3) {
					count = 0;
				} else {
					modifiedList.add(i);
				}
			}
			play(modifiedList, count);
		}
		return -1;
	}

	public static void main(String[] args) {
		int count = 0;
		QueryTheNumber main = new QueryTheNumber();
		main.init();
		main.play(main.initList, count);
		System.out.println("the last person's original number is:" + main.result);
	}
}


24 楼 ogg0201 2009-03-09  
import java.util.Scanner;  
  
public class QuiteThree {  
  
    public static void main(String[] args) {  
        System.out.print("Input a number: ");  
        Scanner scanner = new Scanner(System.in);  
        int n = scanner.nextInt();  
        System.out.println("There are "+n+" persons!");  
        int i,k=0,m=0;  
        int person[] = new int[n];  
        for(i=0;i<n;i++){  
            person[i]=i+1;  
        }  
        i=0;  
        while(m<n-1){  
            if(person[i]!=0)k++;  
            if(k==3){  
                person[i]=0;  
                k=0;  
                m++;  
            }  
            i++;              
            if(i==n)i=0;  
        }  
        while(person[i]==0)i++;  
        System.out.print("The last one is NO."+person[i]+"!");  
    }  
  
}  

不错!
23 楼 wajmy 2009-03-09  

做得可能罗嗦了一点 。呵呵 第一次上交 多鼓励一下 谢谢!
tobeno1 写道

wajmy 写道
做得可能罗嗦了一点 。呵呵 第一次上交 多鼓励一下 谢谢! 呵呵,这位大哥,你的代码好像不能实现啊

应该没有问题啊 什么地方有问题?
22 楼 ccjsjymg 2009-03-08  
ccjsjymg 写道

对于songjiang 所写的代码,有问题:今日有空,自己写了一下:


Java代码

public&nbsp;class&nbsp;QuiteThree&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;public&nbsp;int[]&nbsp;initArray(int&nbsp;count){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;person&nbsp;=&nbsp;new&nbsp;int[count]; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;i&nbsp;&lt;person.length;i++){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[i]&nbsp;=&nbsp;i+1; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;person; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;public&nbsp;int&nbsp;getLastPerson(int&nbsp;c){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int[]&nbsp;t&nbsp;=&nbsp;initArray(c); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;k&nbsp;=&nbsp;0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;flag&nbsp;=&nbsp;-1; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count&nbsp;=&nbsp;0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;last&nbsp;=&nbsp;0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;i&nbsp;&lt;&nbsp;t.length;i++){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(t[i]&nbsp;==&nbsp;flag){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(k&nbsp;==&nbsp;3){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(t[i]); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;t[i]&nbsp;=&nbsp;flag; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;=&nbsp;0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(t.length&nbsp;-count&nbsp;==&nbsp;1){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i&nbsp;==&nbsp;t.length&nbsp;-1){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;=&nbsp;-1; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;i&nbsp;&lt;&nbsp;t.length;i++){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(t[i]&nbsp;!=&nbsp;-1){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;last&nbsp;=&nbsp;t[i]; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;last; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QuiteThree&nbsp;qt&nbsp;=&nbsp;new&nbsp;QuiteThree(); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("最后一个留在圈子的人:"+qt.getLastPerson(13)); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp; &nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;public class QuiteThree {  

   public int[] initArray(int count){
   int[] person = new int[count];
   for(int i = 0;i &lt;person.length;i++){
   person[i] = i+1;
   }
   return person;
   }
   public int getLastPerson(int c){
   int[] t = initArray(c);
   int k = 0;
   int flag = -1;
   int count = 0;
   int last = 0;
   for(int i = 0;i &lt; t.length;i++){
   if(t[i] == flag){
   continue;
   }
   k++;
   if(k == 3){
   System.out.println(t[i]);
   t[i] = flag;
   count++;
   k = 0;
   }
   if(t.length -count == 1){
   break;
   }else{
   if(t.length % 3 != 0){
   if(i == t.length -1){
   i = -1; 
   }
   }else{
   i = 0;
   }    }
   }
  for(int i = 0;i &lt; t.length;i++){
  if(t[i] != -1){
  last = t[i];
  }
  }
   return last;
   }
   public static void main(String[] args) {
   QuiteThree qt = new QuiteThree();
   System.out.println("最后一个留在圈子的人:"+qt.getLastPerson(13));
   }
 



21 楼 ccjsjymg 2009-03-08  
对于songjiang 所写的代码,有问题:今日有空,自己写了一下:
public class QuiteThree {   
	 
   public int[] initArray(int count){
	   int[] person = new int[count];
	   for(int i = 0;i <person.length;i++){
		   person[i] = i+1;
	   }
	   return person;
   }
   public int getLastPerson(int c){
	   int[] t = initArray(c);
	   int k = 0;
	   int flag = -1;
	   int count = 0;
	   int last = 0;
	   for(int i = 0;i < t.length;i++){
		   if(t[i] == flag){
			   continue;
		   }
		   k++;
		   if(k == 3){
			   System.out.println(t[i]);
			   t[i] = flag;
			   count++;
			   k = 0;
		   }
		   if(t.length -count == 1){
			   break;
		   }else{
			   if(i == t.length -1){
				   i = -1;
			   }
		   }
	   }
	  for(int i = 0;i < t.length;i++){
		  if(t[i] != -1){
			  last = t[i];
		  }
	  }
	   return last;
   }
   public static void main(String[] args) {
	   QuiteThree qt = new QuiteThree();
	   System.out.println("最后一个留在圈子的人:"+qt.getLastPerson(13));
   }
  
}  
20 楼 panjunfang 2009-03-07  
songjiang 写道



Java代码

import&nbsp;java.util.Scanner; &nbsp;&nbsp;
&nbsp;&nbsp;
public&nbsp;class&nbsp;QuiteThree&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("Input&nbsp;a&nbsp;number:&nbsp;"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanner&nbsp;scanner&nbsp;=&nbsp;new&nbsp;Scanner(System.in); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n&nbsp;=&nbsp;scanner.nextInt(); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("There&nbsp;are&nbsp;"+n+"&nbsp;persons!"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,k=0,m=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;person[]&nbsp;=&nbsp;new&nbsp;int[n]; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;n;i++){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[i]=i+1; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(m&lt;n-1){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(person[i]!=0)k++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(k==3){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[i]=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==n)i=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(person[i]==0)i++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("The&nbsp;last&nbsp;one&nbsp;is&nbsp;NO."+person[i]+"!"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;
}&nbsp;&nbsp;import java.util.Scanner;

public class QuiteThree {

   public static void main(String[] args) {
   System.out.print("Input a number: ");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("There are "+n+" persons!");
   int i,k=0,m=0;
int person[] = new int[n];
for(i=0;i&lt;n;i++){
person[i]=i+1;
}
i=0;
while(m&lt;n-1){
if(person[i]!=0)k++;
if(k==3){
person[i]=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(person[i]==0)i++;
System.out.print("The last one is NO."+person[i]+"!");
}

}



更正:
public class QuiteThree {

   public static void main(String[] args) {
   System.out.print("Input a number: ");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("There are "+n+" persons!");
   int i,k=0,m=0;
int person[] = new int[n];
for(i=0;i&lt;n;i++){
person[i]=i+1;
}
i=0;
while(m&lt;n-1){
if(person[i]!=0)k++;
if(k==3){
person[i]=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
                  i = 0;
while(person[i]==0)i++;
System.out.print("The last one is NO."+person[i]+"!");
}

}
19 楼 zhuyongjun 2009-03-07  
public class QuiteThree {  
 
    public static void main(String[] args) {  
         QuiteThree qt = new QuiteThree();
         List l = new ArrayList();
int k = 13;
int n = 3;
for(int i = 1;i <= k;i++)
{
l.add(i+"");
}
l = st.validThree(k, n, l);
for(int j = 0;j < l.size();j++)
{
System.out.println(l.get(j));
}
    }  
    public List validThree(int max,int n,List l)
{
if(max < n)
return l;
int k = 1;
for(int i = 1;i <= max;i++)
{
if(i%n == 0)
{
l.remove(i-k);
k++;
}
}
int w = max%n;
for(int s = w;s > 0;s--)
{
String v = l.get(l.size()-s).toString();
l.remove(l.size()-s);
l.add(w-s, v);
}
this.validThree(l.size(),n,l);
return l;
}

18 楼 jijuxie678 2009-03-07  
	private static void math(){
		//定一个数组,
		int[] peoples = new int[13];
		for(int i=1;i<14;i++){
			peoples[i-1]=i;
		}
		
		//outCount记录淘汰的人数
		int outCount=0;
		//point当数组的指针
		int point=0;
		//index当实际人数得指针
		int index=0;
		
		for(int i=1;true;i++){
			if(point >= 12)point=0;
			point++;
			//如果等于0说明这个人已经出局
			if(peoples[point]==0){
				continue;
			}
			index++;
			if(index%3==0){
				peoples[point] = 0;
				outCount++;
			}
			//如果outCount>10,也就是剩余得人少于3个,所以推出
			if(outCount > 10) break;
		}
		System.out.println("剩余的人的原来序号:");
		for(int i=1;i<14;i++){
			if(peoples[i-1] != 0)System.out.println(i);
		}
	}
17 楼 night_stalker 2009-03-07  
风宇兮 写道

看不懂!!!!!!!!!


加点注释:
#pp就是屁屁
require 'pp'

#用一个hash来制造循环链表,i:报数计数,p:9527你们都是9527
a = {}
(1..13).each{|e|a[e] = e + 1}
i = p = a[13] = 1

#亚军也得颁个奖吧,所以size == 2就停了
while a.size > 2  
  if(2 == i % 3)
    #to下家:我知道你要报3,你不用报了,out!
    n = a[p] 
    a[p] = a[n]
    a.delete n
    #正如上面所说,pp就是屁屁
    pp a.keys  
  else
    #恭喜你,pass!下一位!
    p = a[p]
  end
  i += 1
end  
16 楼 风宇兮 2009-03-07  
night_stalker 写道

路过……Ruby来串门了


Ruby代码

require&nbsp;'pp'&nbsp;&nbsp;
a&nbsp;=&nbsp;{} &nbsp;&nbsp;
(1..13).each{|e|a[e]&nbsp;=&nbsp;e&nbsp;+&nbsp;1} &nbsp;&nbsp;
i&nbsp;=&nbsp;p&nbsp;=&nbsp;a[13]&nbsp;=&nbsp;1 &nbsp;&nbsp;
while&nbsp;a.size&nbsp;&gt;&nbsp;2 &nbsp;&nbsp;
&nbsp;&nbsp;if(2&nbsp;==&nbsp;i&nbsp;%&nbsp;3) &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;n&nbsp;=&nbsp;a[p] &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;a[p]&nbsp;=&nbsp;a[n] &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;a.delete&nbsp;n &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;pp&nbsp;a.keys &nbsp;&nbsp;
&nbsp;&nbsp;else&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;=&nbsp;a[p] &nbsp;&nbsp;
&nbsp;&nbsp;end&nbsp;&nbsp;
&nbsp;&nbsp;i&nbsp;+=&nbsp;1 &nbsp;&nbsp;
end&nbsp;&nbsp;require 'pp'
a = {}
(1..13).each{|e|a[e] = e + 1}
i = p = a[13] = 1
while a.size &gt; 2
  if(2 == i % 3)
    n = a[p]
    a[p] = a[n]
    a.delete n
    pp a.keys
  else
    p = a[p]
  end
  i += 1
end


  看不懂!!!!!!!!!
15 楼 bleet 2009-03-07  
我猜猜 1
14 楼 ccjsjymg 2009-03-07  
songjiang 写道



Java代码

import&nbsp;java.util.Scanner; &nbsp;&nbsp;
&nbsp;&nbsp;
public&nbsp;class&nbsp;QuiteThree&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("Input&nbsp;a&nbsp;number:&nbsp;"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Scanner&nbsp;scanner&nbsp;=&nbsp;new&nbsp;Scanner(System.in); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;n&nbsp;=&nbsp;scanner.nextInt(); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println("There&nbsp;are&nbsp;"+n+"&nbsp;persons!"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,k=0,m=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;person[]&nbsp;=&nbsp;new&nbsp;int[n]; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;n;i++){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[i]=i+1; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(m&lt;n-1){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(person[i]!=0)k++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(k==3){ &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;person[i]=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i++;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(i==n)i=0; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(person[i]==0)i++; &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.print("The&nbsp;last&nbsp;one&nbsp;is&nbsp;NO."+person[i]+"!"); &nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;
&nbsp;&nbsp;
}&nbsp;&nbsp;import java.util.Scanner;

public class QuiteThree {

   public static void main(String[] args) {
   System.out.print("Input a number: ");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
System.out.println("There are "+n+" persons!");
   int i,k=0,m=0;
int person[] = new int[n];
for(i=0;i&lt;n;i++){
person[i]=i+1;
}
i=0;
while(m&lt;n-1){
if(person[i]!=0)k++;
if(k==3){
person[i]=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(person[i]==0)i++;
System.out.print("The last one is NO."+person[i]+"!");
}

}



好像有点问题哈。。。。。。。
13 楼 night_stalker 2009-03-07  
路过……Ruby来串门了
require 'pp'
a = {}
(1..13).each{|e|a[e] = e + 1}
i = p = a[13] = 1
while a.size > 2
  if(2 == i % 3)
    n = a[p]
    a[p] = a[n]
    a.delete n
    pp a.keys
  else
    p = a[p]
  end
  i += 1
end
12 楼 xiangjie256 2009-03-06  
期待还有下一题
11 楼 tobeno1 2009-03-06  
wajmy 写道

做得可能罗嗦了一点 。呵呵 第一次上交 多鼓励一下 谢谢!


呵呵,这位大哥,你的代码好像不能实现啊
10 楼 tobeno1 2009-03-06  
我晕,怎么提交代码啊?

相关推荐

Global site tag (gtag.js) - Google Analytics