上次听某人说写了几百行来着,我这个一帖装下了,还算短的吧。估计有更短的,懒得跟你比。
第二个,蛋疼的约瑟夫环,N个人数数的玩意,数到几退出,剩下几。
#include<stdio.h>
#include<malloc.h>
typedef struct Josephus
{
int a;
struct Josephus *next;
}Josephus;
int main()
{
int n=0,m=0,i=1;
Josephus *head = (Josephus*)malloc(sizeof Josephus),*p = head;
head->a = 1;
puts("the n?");
scanf("%d",&n);
puts("the m?");
scanf("%d",&m);
for(; i != n; ++i)
{
p->next = (Josephus*)malloc(sizeof Josephus);
p = p->next;
p->a = i+1;
}
p->next = head;
p = head;
for(i=1; n != 1;++i,--n)
{
if(i == m)
{
i=1;
p = head->next;
head->next = head->next->next;
free(p);
}
head = head->next;
}
printf("%d\n",head->a);
return 0;
}
第二个,蛋疼的约瑟夫环,N个人数数的玩意,数到几退出,剩下几。
#include<stdio.h>
#include<malloc.h>
typedef struct Josephus
{
int a;
struct Josephus *next;
}Josephus;
int main()
{
int n=0,m=0,i=1;
Josephus *head = (Josephus*)malloc(sizeof Josephus),*p = head;
head->a = 1;
puts("the n?");
scanf("%d",&n);
puts("the m?");
scanf("%d",&m);
for(; i != n; ++i)
{
p->next = (Josephus*)malloc(sizeof Josephus);
p = p->next;
p->a = i+1;
}
p->next = head;
p = head;
for(i=1; n != 1;++i,--n)
{
if(i == m)
{
i=1;
p = head->next;
head->next = head->next->next;
free(p);
}
head = head->next;
}
printf("%d\n",head->a);
return 0;
}