import java.util.*;
public class kk {
public static void main(String[] args) {
int[] arr = new int[]{1,2};
int target = 3;
System.out.println(soluction(arr, target));;
// System.out.println(re);
}
public static String soluction(int[] arr, int target)
{
StringBuffer sb = new StringBuffer();
StringBuffer arr_sb = new StringBuffer();
//ArrayList<Integer> arr_list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();
int k = 0;
int i = 0;
//target = target;
for (Integer integer : arr) {
arr_sb.append(integer);
}
int j =0;
while(arr_sb.length()!= 0)
{
//第一次,将报数为k的删除
for(i = 0;i<arr_sb.length();i++)
{
//k为报数
k++;
if(k==target && i == arr_sb.length()-1)
{
sb.append(arr_sb.substring(i,i+1));
arr_sb.delete(i, i+1);
//下个i要加一
i=-1;
k =0;
}
else if(k==target )
{
sb.append(arr_sb.substring(i,i+1));
arr_sb.delete(i, i+1);
i = i-1;
k =0;
}
}
//如果k==2,并且是数组的最后一个元素,则第一个元素是要出列的,加入sb,并将i=0;删除第一个元素,下一个从
//第一个元素开始
if(i == arr_sb.length() && k==2)
{
i = 0;
k=0;
sb.append(arr_sb.substring(i,i+1));
arr_sb.delete(i, i+1);
}
//否则如果是数组的最后一个元素,循环到第一个元素
}
return sb.toString();
}
}
import java.util.*;
//
public class kk {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6};
int target = 5;
System.out.println(soluction(arr, target));;
// System.out.println(re);
}
public static String soluction(int[] arr, int m)
{
StringBuffer sb = new StringBuffer();
StringBuffer arr_sb = new StringBuffer();
//ArrayList<Integer> arr_list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();
for ( int rr:arr) {
list.add(rr);
}
int len = list.size();
//每次开始的位置
int k = 0;
while (len > 1)
{
if(k + m <= len)
{
sb.append(list.get(k+m-1));
list.remove(k+m-1);
k = k + m-1;
}
else
{
sb.append(list.get((k+m-1)%len));
list.remove((k+m-1)%len);
k = (k+m-1)%len;
}
len--;
}
sb.append(list.get(list.size()-1));
return sb.toString();
}
}
import java.util.*;
//https://www.freesion.com/article/75211427085/
public class kk {
public static void main(String[] args) {
int[] arr = new int[]{1, 2, 3, 4, 5, 6};
int target = 5;
String re = soluction(arr, target);
System.out.println(re);
;
// System.out.println(re);
}
public static String soluction(int[] arr, int m) {
StringBuffer sb = new StringBuffer();
StringBuffer arr_sb = new StringBuffer();
//ArrayList<Integer> arr_list = new ArrayList<>();
ArrayList<Integer> list = new ArrayList<>();
for (int rr : arr) {
list.add(rr);
}
//计数
int t = 1;
//每次开始的位置
int i = 0;
while (!list.isEmpty()) {
if (t == m) {
sb.append(list.get(i));
list.remove(i);
i--;
t = 0;
}
t++;
i++;
if (i >= list.size()) {
i = 0;
}
}
return sb.toString();
}
}
更新5.11
package com;
import java.util.ArrayList;
//圆桌
public class comm {
public static void main(String[] args) {
int[] arr = new int[]{1, 2, 3, 4, 5,6,7};
int k = 3;
String re = maxLength(arr);
System.out.println(re);
}
public static String maxLength(int[] arr) {
StringBuffer s = new StringBuffer();
StringBuffer sb = new StringBuffer();
for (int a:arr) {
s.append(a);
}
int p = 0;
int shu = 1;
while(p < s.length())
{
if(shu == 3){
sb.append(s.substring(p,p+1));
s.delete(p,p+1);
shu = 1;
if(p>s.length()-1)
{
p = 0;
}
continue;
}
else{
shu ++;
}
p++;
if(s.length()!= 0 && p >= s.length()){
p = p % s.length();
}
}
return (sb.toString());
// write code here
}
}