程序三十七:约瑟夫环 不指定

lanbingfeihan , 2009/04/26 09:28 , 编程和操作系统 , 评论(0) , 阅读(321) , Via 本站原创 | |
      应该用一个循环可以省下不少代码,但是现在脑子有点昏,下午或明天解决这个问题。应该不会很麻烦,这是我自己做的啊, 没有看任何参考资料, 以前也见过约瑟夫环的问题,都没有头绪, 我觉得我这样的想法虽然比较笨,但是应该很实用。我开始逐渐的把程序分成一个个小问题来解决了。我觉得是进步。这个题在循环结束条件上我弄不清了,现在弄不清,不知道怎么解决,因为最后一个应该数组长度为1了,怎么判断数组长度是不是一,我还没有弄清楚, 好像a.length不能直接参与那种是否等于的运算的, 前几天弄的不可以。

/**【程序37】
题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

public class Circle1{
     public static void main(String args[]){
          Circle1 c1=new Circle1();
          c1.suanFa();
    
     }
     public void suanFa(){
         int m=0;
         int p=0;
         int[] b={0,0,0,0,0,0,0};
         int[] c;
         //int n=10;
         int a[]={1,2,3,4,5,6,7,8,9,10};
        /* for(int i=0;i           System.out.print(a[i]+"  ");
           }
     */
     for(int i=0;i          m++;
          if(m%3==0){
            a[i]=0;
            }
       }
          
          
           for(int n=0;n            
                 if(a[n]!=0){
                  
                   b[p]=a[n];
                   p++;
                   }
             }
             a=b;
               for(int i=0;i          m++;
          if(m%3==0){
            a[i]=0;
            }
            System.out.println(m);
       }
       p=0;
       for(int n=0;n            
                 if(a[n]!=0){
                  
                   b[p]=a[n];
                   p++;
                   }
             }
       b=a;
       a=b;
               for(int i=0;i          m++;
          if(m%3==0){
            a[i]=0;
            }
            System.out.println(m);
       }
       p=0;
       for(int n=0;n            
                 if(a[n]!=0){
                  
                   b[p]=a[n];
                   p++;
                   }
             }
             a=b;
               for(int i=0;i          m++;
          if(m%3==0){
            a[i]=0;
            }
            System.out.println(m);
       }
       p=0;
       for(int n=0;n            
                 if(a[n]!=0){
                  
                   b[p]=a[n];
                   p++;
                   }
             }
    
       b=a;
           for(int j=0;j           System.out.print(b[j]+"  ");
          
       }
     }
}
Tags:
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]