ikoasi 2021-04-08 16:33 采纳率: 50%
浏览 47

c语言的约瑟夫环问题,提交到oj上总是显示运行超时,怎么解决啊义父们

#include <stdio.h>
#include <stdlib.h>

typedef struct node
{
   int data;
   struct node *next;
}Node;

void josephusFn(int n,int k)
{
    //创建循环链表
    Node *head= NULL,*p= NULL,*r= NULL;

    head = (Node *)malloc(sizeof (Node));
    if(head == NULL)
    {
        printf("failed");
        return;
    }

    head->data = 0;
    head->next = NULL;
    p = head;
    //创建
    for(int i=1;i < n;i++)
    {
        r=(Node *)malloc(sizeof (Node));
        r->data = i;
        r->next =NULL;
        p->next = r;
        p = r;
    }

    p->next = head;
    p = head;

    while(p->next != p)
    {
        for(int i = 1;i < k;i++)
        {
            r=p;
            p=p->next;
        }
        printf("%d ",p->data +1);
        r->next = p->next;
        p = p->next;
    }
    printf("%d ",p->data +1);
    printf("\n");
}


int main()
{
    int n,k;
//    while(1)
//    {
       scanf("%d %d",&n,&k);
       josephusFn(n,k);
//    }
    return 0;
}
 

  • 写回答

1条回答 默认 最新

  • inferior_hjx 2023-04-25 20:03
    关注

    建议阅读:《具体数学》by Ronald L. Graham / Donald E. Knuth / Oren Patashnik

    或者百度:这里

    题主的算法时间复杂度太高,不是最优解

    评论 编辑记录

报告相同问题?

悬赏问题

  • ¥30 电脑误删了手机的照片怎么恢复?
  • ¥15 (标签-python|关键词-char)
  • ¥15 python+selenium,在新增时弹出了一个输入框
  • ¥15 苹果验机结果的api接口哪里有??单次调用1毛钱及以下。
  • ¥20 学生成绩管理系统设计
  • ¥15 来一个cc穿盾脚本开发者
  • ¥15 CST2023安装报错
  • ¥15 使用diffusionbert生成文字 结果是PAD和UNK怎么办
  • ¥15 有人懂怎么做大模型的客服系统吗?卡住了卡住了
  • ¥20 firefly-rk3399上启动卡住了