约瑟夫如何要想避免数到自己和朋友,只要最后剩下他和朋友就可以。
代码:
#include "stdafx.h"
#include <iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void main()
{
ListNode* head = new ListNode(1);
ListNode* p = head;
for (int i = 2; i < 42; i++)
{
ListNode* tmp = new ListNode(i);
p->next = tmp;
p = p->next;
}
p->next = head;
ListNode* q = head;
while (q->next->next != q)
{
cout << q->next->next->val<<"->";
q->next->next = q->next->next->next;
q = q->next->next;
}
cout << q->val << "->";
cout << q->next->val << endl;
system("pause");
}
实验结果: