华为往年题目及答案

上传人:xzh****18 文档编号:41833506 上传时间:2018-05-31 格式:DOCX 页数:2 大小:17.39KB
返回 下载 相关 举报
华为往年题目及答案_第1页
第1页 / 共2页
华为往年题目及答案_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《华为往年题目及答案》由会员分享,可在线阅读,更多相关《华为往年题目及答案(2页珍藏版)》请在金锄头文库上搜索。

1、约瑟夫环约瑟夫环是一个数学的应用问题:已知 n 个人(以编号 1,2,3.n 分别表示)围坐在一张圆桌周围。从 编号为 k 的人开始报数,数到 m 的那个人出列;他的下一个人又从 1 开始报数,数到 m 的那个人又出列; 依此规律重复下去,直到圆桌周围的人全部出列。 #include #include typedef struct Node int num; struct Node *next; LinkList;LinkList *creat(int n)/定义一个返回一个指向链表头的指针的函数 LinkList *p,*q,*head;/定义指向 linklist 链表的指针 int i=

2、1; p=(LinkList *)malloc(sizeof(LinkList);p-num=i;/*p.num=i/给*p.num 赋值, head=p;/将 p 赋给 head;p 是一个指向 linklist 链表的指针。linklist 链表第一个为 headfor(i=2;inum=i;/给*q.num 赋值p-next=q;/将 q 赋给 p 链表的*p.next/实现 pi,q qi,p=q;p-next=head; /*使链表尾指向链表头 形成循环链表*/return head; /接下来的函数为处理 void fun(LinkList *L,int m)/定义一个返回值为空,

3、传递进去的两个参数,一个为 linklist 类型, 还有一个为 int 类型 int i; LinkList *p,*s,*q;p=L;/将链表头赋给 p printf(“出列顺序为:“); while(p-next!=p)/*p.next!=p/运行到只剩下一个 head 时 for(i=1;inext;/p=(*p).next printf(“%5d“,p-num);/打印出 m 的倍数 p=m/q 为 m-1 s=p;/将 m 赋值给 s q-next=p-next;/将 m+1 赋给(*q).next 即将*m.next 赋给*(m-1).next/将 m+1与 m-1 连上 p=p-next;/(*p).next/从 m+1 开始继续加 free(s); printf(“%5dn“,p-num);/输出剩下的数 int main() LinkList *L; int n, m;n=12;/输入 9 个人 m=3;/每五个数 L=creat(n); fun(L,m); return 0;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号