编程题,已知的数组,以4为步长,循环输出,c,c++,java都可以

已知数组-1,3,8,6,5,20,要求输出6,3,-1,8,20,5
2025-01-25 02:45:58
推荐回答(4个)
回答1:

#include 
using namespace std;
 struct Node
 {
 int date;
 Node *next;
 };
 void josephbicycle(Node* p,int n,int k,int m)
 {
 Node* head=p;
 Node* start=p;  //游戏开始位置
 int cnt=0;//计数用的
 int count=0;
 while(1) //将链表头尾相连成约瑟夫环
 {
 if(p->next==NULL)
 {
 p->next=head;
 break;
 }
 else
 p=p->next;
 }
 for(Node* tmp=head;cntnext)
 {
 start=tmp;
cnt++;
}
 cnt=0;
 if(m==1)            //判断离开,删除离开成员的指针
 {
 for(Node* tmp=start;cntnext)
 {
 cout<next->date<  cnt++;
 }
 }
 else
 {
 cnt=1;
 while(1)
 {
 cnt++;
 if(cnt==m)
 {
 count++;
 cout<next->next->date<  start->next->next=start->next->next->next;
 cnt=1;
 }
 if(count==n)
 break;
 start=start->next;
}
}
 }
int main()
{
Node *p,*head;
p=new Node;
head=p;
int n,date;
cout<<"请输入数组所包含元素个数n:";
cin>>n;
cout<<"请输入各个元素,用空格隔开:";
for(int i=1;i<=n;i++)
{
cin>>date;
p->date=date;
if(i {
p->next=new Node;
p=p->next;
}
if(i==n)
p->next=NULL;
}
josephbicycle(head,n,1,4);
return 0;
}
满意请采纳!不懂可以问,不满意可以修改!

回答2:

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

public class Test {
public static void main(String arng []){
List list1 = new ArrayList();
List list2 = new ArrayList();
list1.add(-1);
list1.add(3);
list1.add(8);
list1.add(6);
list1.add(5);
list1.add(20);
int i = -1;
while(list1.size()>0){
i+=4;
if(list1.size()==1){
     i=0;
}
else{
while(i>=list1.size()){
i=i-list1.size()-1;
}
}
list2.add(list1.get(i));
list1.remove(i);
}
for(int j=0;j System.out.println(list2.get(j));
}
}
}



Java写的,望采纳,都是简单的语句,就不加备注了

回答3:

tongyiloushagnguandian

回答4:

你们都是人才 ·······这多人来回答···