frisbee(for hw)-类似单向循环链表
来源:互联网 发布:js调用另外一个js方法 编辑:程序博客网 时间:2024/06/05 03:39
Jeremy最近迷上了玩飞盘,他掷飞盘的时候有一个习惯,在一叠飞盘中,从第一个飞盘(即位于顶端的飞盘)开始,从上往下依次编号为1,2,…,N。当至少还有两个飞盘的时候,Jeremy会掷出一个飞盘,然后把新的第一个飞盘放到所有飞盘的下方。输入飞盘的总数N,要求输出每次扔掉的飞盘,以及最后剩下的飞盘。
Input
第一行为一个整数T(0
#include <stdio.h>int main() { int n; scanf("%d", &n); while (n--) { int m, i; int ans[100]; scanf("%d", &m); for (i = 1; i <= m; i++) { ans[i] = i; } while (m--) { printf("%d ", ans[1]); ans[0] = ans[2];//用于过渡 for (i = 1; i <= m; i++) { ans[i] = ans[i + 2]; } ans[m] = ans[0]; } printf("\n"); } return 0;}
#include<stdio.h>int main() { int t = 0, n = 0; int i = 0, j = 0; scanf("%d", &t); while (t--) { scanf("%d", &n); if (n >= 2) { int frisbee[100] = {}; for (i = 1; i <= n; i++) { frisbee[i] = i; } for (j = 1; j <= 100; j++) { if (j%2 == 1 && frisbee[j] != 0) { printf("%d ", frisbee[j]); } /*在frisbee后面继续加数,把每一次没有输出的值往后放。*/ if (j%2 == 0 && frisbee[j] != 0) { frisbee[i] = frisbee[j]; i++; } } printf("\n"); } else printf("1 \n"); } return 0;}
可以尝试使用单向循环链表,但操作更复杂。
0 0
- frisbee(for hw)-类似单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 循环单向链表
- 单向循环链表
- 循环单向链表
- 单向链表循环
- 循环单向链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表
- 单向循环链表反转
- 单向循环链表C++
- CocoaChina » iOS开发 » 用NSString怎么把UTF8转成unicode
- Objective-C中的单例模式(singleton)
- 浅析Drawer Layout的使用
- 百度在线文本编辑器ueditor
- linux下net-snmp的源码编译安装与配置
- frisbee(for hw)-类似单向循环链表
- 自动布局(FDTemplateLayoutCell的使用)
- php 水印生成图片压缩
- VS下的数据库更删改
- android studio install
- Java中Runnable和Thread的区别
- C++ 学习(使用 using 改写继承类继承成员的性质)
- 设置TextView文字的颜色
- ios 汉字转码 (汉字与utf8、Unicode转与汉字