第四周 项目4 猴子选大王
来源:互联网 发布:皮带腰包 淘宝 编辑:程序博客网 时间:2024/06/04 23:26
目标:一群猴子,编号是1,2,3,,,,m,这群猴子按照1-m排序做一圈。从第一只开始数,没到第n个,该猴子离开圈子,到最后,剩下一个猴子就是猴王。
代码:
#include <iostream>#include "kudetouwenjian.h"using namespace std;int main(){ linknode *L; A e=0; int m,n,c; cin>>m>>n; A a[m]; A b[m]; for(int i=0;i<m;i++) a[i]=i+1; xunhuanlianbiao(L,a,m); if(n==1) { cout<<m<<endl; return 0; } houzi(L,n,m); return 0;}#include <iostream>#include <malloc.h>#include "kudetouwenjian.h"using namespace std;void houzi(linknode *&L,int n,int m){ linknode *p=L->next; for(int i=0;i<m-1;i++) { for(int a=0;a<n-1;a++) { L=p; p=L->next; } L->next=p->next; free(p); p=L->next; } cout<<L->shuju<<endl;}void xunhuanlianbiao(linknode *&L,A a[],int n){ linknode *s,*r; L=(linknode *)malloc(sizeof(linknode)); r=L; for(int i=0;i<n;i++) { s=(linknode *)malloc(sizeof(linknode)); s->shuju=a[i]; r->next=s; r=s; } r->next=L->next;}void toucha(linknode *&L,A a[],int n){ linknode *s; L=(linknode *)malloc(sizeof(linknode)); L->next=NULL; for(int i=0;i<n;i++) { s=(linknode *)malloc(sizeof(linknode)); s->shuju=a[i]; s->next=L->next; L->next=s; }}void shuchu(linknode *L){ linknode *p=L->next; while(p!=NULL) { cout<<p->shuju<<" "; p=p->next; } cout<<endl;}void weicha(linknode *&L,A a[],int n){ linknode *s,*r; L=(linknode *)malloc(sizeof(linknode)); r=L; for(int i=0;i<n;i++) { s=(linknode *)malloc(sizeof(linknode)); s->shuju=a[i]; r->next=s; r=s; } r->next=NULL;}void chushihua(linknode *&L){ L=(linknode *)malloc(sizeof(linknode)); L->next=NULL;}void cuihui(linknode *&L){ linknode * pre=L,* p=L->next; while(p!=NULL) { free(pre); pre=p; p=pre->next; } free(pre); L->next=NULL;}int panduanshifouweikong(linknode *L){ return(L->next==NULL);}int changdu(linknode *L){ int e=0; linknode *p=L->next; while(p!=NULL) { e++; p=p->next; } return(e);}int shunxuchazhao(linknode * L,int i,A &e){ int j=1; linknode *p=L->next; if(i<=0)j=j;; while(j<i) { j++; p=p->next; } if(p==NULL) j=j; else { e=p->shuju; return(e); }}int chazhaodange(linknode *L,A e){ int j=1; linknode *p=L->next; if(p==NULL) return 0; while(p!=NULL&&e!=p->shuju) { p=p->next; j++; } if(p==NULL) return 0; else return(1);}bool charudange(linknode *&L,int i,A e){ int j=0; linknode * p=L,* s; if(i<=0)return false; while(j<i-1&&p!=NULL) { j++; p=p->next; } if(p==NULL) return false; else { s=(linknode *)malloc(sizeof(linknode)); s->shuju=e; s->next=p->next; p->next=s; }}#ifndef KUDETOUWENJIAN_H_INCLUDED#define KUDETOUWENJIAN_H_INCLUDED#include <iostream>typedef int A;typedef struct lianbiao{ A shuju; struct lianbiao *next;}linknode;void toucha(linknode *&L,A a[],int n);void shuchu(linknode *L);void weicha(linknode *&L,A a[],int n);void chushihua(linknode *&L);void cuihui(linknode *&L);int panduanshifouweikong(linknode *L);int changdu(linknode *L);int shunxuchazhao(linknode *L,int i,A &e);int chazhaodange(linknode *L,A e);bool charudange(linknode *&L,int i,A e);void xunhuanlianbiao(linknode *&L,A a[],int n);void houzi(linknode *&L,int n,int m);#endif // KUDETOUWENJIAN_H_INCLUDED
运行图:
心得:
这次算是一次循环链表的应用题。我把它想的太难了,用链表的删除就行了。
阅读全文
0 0
- 第四周项目4 猴子选大王
- 第四周项目4 猴子选大王
- 第四周项目4--猴子选大王
- 第四周 项目4-猴子选大王
- 第四周 项目4-猴子选大王
- 第四周项目4---猴子选大王
- 第四周项目4-猴子选大王
- 第四周--项目4-猴子选大王
- 【第四周项目4-猴子选大王】
- 第四周项目4猴子选大王
- 第四周 项目4-猴子选大王
- 第四周 项目4 :猴子选大王
- 第四周项目4-猴子选大王
- 第四周项目4 猴子选大王
- 第四周项目4-猴子选大王
- 第四周 项目4-猴子选大王
- 第四周项目4-猴子选大王
- 第四周项目4-猴子选大王
- Android入门之环境搭建-helloworld
- Python学习笔记:python中enumerate函数的用法
- Linux趣事 -- (1)shell脚本
- CodeForce334A
- shell_Sort(希尔排序)
- 第四周 项目4 猴子选大王
- 周视图日历计算方法
- Ubuntu16.0.4 设置python3为默认
- SSM三大框架整合详解
- AlphaGo Zero到底强在哪里?
- react官网01Installation
- [入门]蛇行矩阵
- C#常用的几种算法
- Sustainable Transmission Networking Design for Big Data