1231: 趣味程序设计_猜牌术(-)

时间限制: 1 Sec  内存限制: 128 MB
提交: 177  解决: 72
[提交][状态][讨论版]

题目描述

魔术师利用一幅牌中13张黑桃,预先将它们排好后迭在一起,牌面朝下,对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A话在桌子上,然后按顺序从上到下数手中的余牌,第二次数1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1、2、3,将前面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3,这样依次进行,将13张牌全部翻出来,准确无误。问魔术师手中的牌原始次序是怎样安排的?

  如果不是确定的13张牌,而是n张牌呢?

输入

每行输入一个n值(n不超过100),表示牌的总张数.

输出

对应的原始排列次序.

怪我语文不好,看了五分钟才看懂题意。。。(⊙o⊙)…,,,之后就好说了,首先我想到的是栈或者队列模拟,貌似不太好用,所以直接数组模拟算了,时间复杂度O(n)。直接模拟即可,首先a【1】=1是一定的,之后2就与1间隔1个数,3与2间隔2个数,过了数组最大值后,间隔的数必须是没有填的数位。贴代码

#include <iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<stack>
using namespace std;
typedef long long LL;
const int MAX=300;
int a[120];
int main()
{int n,j,sum;while(scanf("%d",&n)==1){memset(a,0,sizeof(a)); ///数组置零,后面要算空格数的,挺重要a[1]=1;for(int i=2; i<=n; i++){sum=0;      ///计算间隔的没有填数的位置if(i==2)    ///j是上位的位置,比如算3,j就是2的位置j=1;for(; sum<=i-1; j++){if(j>n) j=j%n;if(a[j]==0)sum++;}a[j-1]=i;if(j-1>n) j=(j-1)%n;else j=j-1;}for(int i=1; i<=n; i++){if(i==n)printf("%d\n",a[i]);elseprintf("%d ",a[i]);}}return 0;
}

顺便加个猜牌术二的,更水,题目都懒得放

#include <iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<string>
#include<cstdlib>
#include<stack>
using namespace std;
typedef long long LL;
int main()
{char r,b,q;while(cin>>r>>q>>b){printf("%c1 %c6 %c10 %c2 %c12 %c3 %c3 %c11 %c9 %c4 %c7 %c12 %c5\n",b,r,b,b,r,r,b,b,r,b,r,b,b);printf("%c4 %c13 %c6 %c13 %c11 %c7 %c5 %c1 %c8 %c8 %c10 %c9 %c2\n",r,r,b,b,r,b,r,r,b,r,r,b,r);}return 0;
}

HNUST 1231:猜牌术(水....)相关推荐

  1. 魔术师利用一副牌中的13张红桃c语言,魔术师的猜牌术(1) 魔术师利用一副牌中的13张黑桃 - 下载 - 搜珍网...

    魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一 起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌 是什么,我大声数数,你们听,不信?你们就看.魔术师将最上 面的那张牌数为1,把它翻过来 ...

  2. 魔术师的猜牌术(一维数组) C++程序

     魔术师的猜牌术(一维数组) 魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下 .对观众说:我不看牌, 只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看. 魔术师 ...

  3. C语言趣味问题系列【1】 猜牌术

    1. 问题描述 猜牌术 一副牌中有13张黑桃,将这副牌整理好为一叠,牌面朝下. 第一次出牌,翻开最上面的那张牌,翻过来的正好是黑桃A,抽出黑桃A放在这叠牌的最底下成为最后一张. 第二次出牌,按顺序从上 ...

  4. 算法_数学问题_Question8_猜牌术(java实现)

    这篇文章讲述的是算法初级部分的猜牌术问题的java实现,参考的书籍为清华大学出版社出版,贾蓓等编著的<c语言趣味编程1000例>,如有错误或者不当之处,还望各位大神批评指正. 问题描述 魔 ...

  5. 100个python算法超详细讲解:猜牌术

    1.问题描述 魔术师利用一副牌中的13张黑桃,预先将它们排好后叠在一起,并使牌面 朝下.然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大 声数数,你们听,不信你们就看.魔术师将从最上面的 ...

  6. 【刷题记录】【一维数组】魔术师的猜牌术。

    魔术师的猜牌术.魔术师利用一副牌中的十三张黑桃,预先将它们排好后迭在一起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们看看.魔术师将最上面的那张牌数为1, ...

  7. 数的变幻(魔术师的猜牌术(2))

    /**************************************** * File Name : figure.c * Creat Data : 2015.1.29 * Author : ...

  8. HNUST 1231 趣味程序设计_猜牌术(-)

    题目描述 魔术师利用一幅牌中13张黑桃,预先将它们排好后迭在一起,牌面朝下,对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过 ...

  9. c语言实例 魔术师的猜牌术(1),C语言实例:魔术师的猜牌术(1)

    魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,牌面朝下.对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看.魔术师将最上面的那张牌数为1,把它翻过来正好是 ...

最新文章

  1. 论文笔记之:Multiple Feature Fusion via Weighted Entropy for Visual Tracking
  2. 机器学习从零开始-Kaggle数据用PurePython实战
  3. 2021牛客多校1 - Journey among Railway Stations(线段树区间合并)
  4. c语言 大雨 班上多个同学准备,2015年计算机二级考试《C语言》提高练习题(7)
  5. HDFS(名称节点与数据节点)简介
  6. 今天学习了无序列表和有序列表和使用HTML5创建表格
  7. 漫步最优化十八——点到集合的映射
  8. Guide sb. in ding sth. or guide sb. to do sth
  9. 基于ResNet迁移学习的LFW人脸识别分类
  10. bootstrap EF_Bootstrap优秀模板INSPINIA.2.9.2
  11. 幽灵蛛(pholcus)(三)--goquery学习资料
  12. 【xubuntu-22.04】精简模式,给intel 盒子安装系统,使用稳定,内存cpu占用低,比之前的版本更加稳定,可以做个服务器使用,也可以上网,功耗低
  13. ffmpeg 为取经而来_孙悟空很早之前就死了,取经的其实是六耳猕猴,这说法是真的吗?...
  14. 达索系统3DEXPERIENCE 平台应用程序组件
  15. C++基础知识(常函数)
  16. 【单片机项目】基于STM32的智能小车设计(三)软件设计
  17. 用读小说的方式掌握c语言(仅适合初学,目的是让c的学习不枯燥)
  18. 印度理工学院有多难考?
  19. 大小球实用技巧:程序实现“惊天反转”你想要的这里都有!
  20. 解决svchost占用内存过高问题

热门文章

  1. jz2440恢复出厂设置
  2. 单调有界定理适用于函数吗_实数系的连续性定理
  3. 【Dart 教程系列第 28 篇】Dart中的 Map 和实体类的相互转换
  4. NAS服务器有哪些优势
  5. VSCode中ESLint插件修复+配置教程
  6. wro4j:Java Web资源压缩
  7. mysql aes源码_MySQL AES_DECRYPT()用法及代码示例
  8. 用计算机的说法,关于计算机系统,下列哪几个说法是正确的?
  9. 适合写python的电脑_文言文的适是什么意思
  10. 计算机考研性价比211学校,计算机考研极具性价比的“211”院校推荐(二)