網站首頁 編程語言 正文
題目如下:
有一家公司,這個公司有一位老板和13名程序員,每天下班前老板都會組織他們玩一次游戲,游戲的勝利者可以不加班,失敗者需要加班2小時。游戲規則如下: 一張圓桌共有13個座位,從1到13編號,游戲開始前老板會說出今天開始報數的座位編號start和淘汰序號k。 然后13名程序員開始搶位置,每個位置只能容納一程序員,每個程序員必須選擇一個座位。 座位號為start的程序員從1開始報數,按如圖所示方向依次報數。每次報數為k的程序員淘汰并離開座位去加班,其他人繼續游戲,直到剩下最后一人瀟灑離去。
有一位非常聰明的程序員,每次在老板說出start和k的瞬間,就能立即選好座位并且獲勝,所以他從來沒有加過班,其他程序員都非常羨慕他,問他制勝法寶,只見他緩緩的打開了一個名為IAMGOD的.c文件,大家都露出崇拜的目光。
今天,你就是這個聰明的程序員,請完善IAMGOD.c文件內容。
根據提示,在右側編輯器完善IAMGOD.c文件內容,找到可以不加班的座位號。
輸入:start k
輸出:所選的座位編號i
示例1-輸入:2 3
? ? ? ? ? ?輸出:13
#include<stdio.h> #include<malloc.h> //創建結構體 typedef struct Node{ int data; struct Node* next; } NODE; //創建新結點和插入結點 void insert(NODE* head) { int i; NODE* tail = head; //對每一個結點進行編號,依次編號為1、2、3......13 for(i = 2; i <= 13; i++) { NODE* newnode; newnode = (NODE*)malloc(sizeof(NODE)); newnode->data = i; //尾插法連接鏈表 newnode->next = NULL; tail->next = newnode; tail = newnode; } /* 這段語句用來打印鏈表,檢測鏈表是否正確連接的 NODE* pmove = head; while(pmove != NULL) { printf("%d->",pmove->data); pmove = pmove->next; } */ tail->next = head; //將尾結點連接到頭結點上,形成一個環 } void serch(NODE* head) { int start_data,i,k; NODE* start = head; scanf("%d%d", &start_data, &k); //移動到第start_data結點,并將此結點當成1號結點 for(i = 2; i <= start_data; i++) { start = start -> next; } NODE* front; //front表示第k個結點的前一個結點 while(start->next != NULL) { int j; for(j = 2; j <= k; j++) { front = start; //先讓front移動到當前結點,然后當前結點往下移動,就形成一前一后的效果 start = start->next; //移動結點 } front->next = start->next; //將第k個結點的上一個結點連接到它的下一個結點上 free(start);//刪除指定結點 start = front->next;//更新start的位置,也就是1號 //當第k個仍是本身,即只剩下了一個結點,跳出循環 if(start->data == (start->next)->data) break; } printf("%d",start->data); } int main() { //創建鏈表 NODE* head; head = (NODE*)malloc(sizeof(NODE)); head->data = 1; head->next = NULL; //創建新結點和連接結點 insert(head); //查找第k個結點并且將其刪除。 serch(head); return 0; }
原文鏈接:https://blog.csdn.net/qq_29992017/article/details/122421128
相關推薦
- 2022-07-07 Python中模塊的使用--binascii模塊用法_python
- 2022-06-12 3種Python?實現酷炫進度條的實用方法_python
- 2022-04-25 Pytorch技法之繼承Subset類完成自定義數據拆分_python
- 2022-03-25 Postman如何導出接口的幾種方法(postman怎么把接口導出來)
- 2023-02-26 MongoDB中連接池、索引、事務_MongoDB
- 2022-08-23 python多線程對多核cpu的利用解析_python
- 2022-05-12 Android10 分享微信提示獲取資源失敗
- 2022-02-28 npm install安裝報錯 gyp info it worked if it ends with
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支