一道趣味小编程(一叠N张卡片)
有时间你自己再测一下吧!
#include
#include
usingnaMESpacestd;
intJhpx(vector*,int,int*);
intmain()
vectorn;
intx=0,pd=0;//x统计下次所须的循环数,pd判断第一个是存还是丢弃
//如果pd=0,则第一张丢弃,反之保存
cout<<"请输入牌的张数:";
cin>>x;
for(inta=1;a<=x;a++)
n.push_back(a);//顺序赋值:1至x;
while(true)
x=Jhpx(&n,x,&pd);
if(x==1)
cout<<"最后留下的那一张牌为原来的"<
break;
return0;
intJhpx(vector*P,intx,int*pd)
inttemp=0,save=0,del=0;//save存的次数,del删的次数
vectortmp;//临时交换用
if(*pd==0)//第一张丢弃
for(inta=1;a<=x;a++)
temp=a-1;
if(a%2>0)//如果为单数则丢弃
(*P)[temp]=0;
del++;
else//反之临时存储
tmp.push_back((*P)[temp]);
(*P)[temp]=0;
save++;
for(intb=0;b
(*P)[b]=tmp[b];
if(del>save)//这里判断接下来一圈的第一张是否丢弃
*pd=1;
*pd=0;
else//第一张保存
for(inta=1;a<=x;a++)
temp=a-1;
if(a%2==0)
(*P)[temp]=0;
del++;
tmp.push_back((*P)[temp]);
(*P)[temp]=0;
save++;
for(intb=0;b
(*P)[b]=tmp[b];
if(del>save)
*pd=1;
*pd=0;
returnsave;
优必杰最近推出了不插电编程课,什么叫不插电编程课?
不插电编程课是用不插电形式学习编程,学生自己用笔在白板纸设计。如需学习少儿编程推荐选择童程童美,该机构提供更高标准的科技素质教育,更利于编程底层逻辑和思维的养成,更能激发孩子自主学习的热情。
学少儿编程可以提高孩子逻辑思维、专注力!
童程童美不插电编程课步骤如下:
1、序列与算法:序列,就是做事的顺序。而算法,就是一种特殊的,专门用于解决某个问题的序列。
2、认识模式:孩子们将学习如何寻找模式,用物品分类的方式强化对模式的认识。
3、逻辑判断:一些复杂的情况是这些基础结构无法描述的,这个时候就要引入一个新的概念,判断。
4、流程图:如果判断的条件很多,判断的顺序又分先后的话,就很容易让人混乱,为了便于表达算法逻辑,会在这里引入一个新的概念,流程图。
5、处理错误:出了错误不可怕,如何分析,解决,改良这些错误,才最重要。
童程童美少儿编程体验课,点击可免费报名试听
想了解更多关于不插电编程的相关内容,推荐咨询童程童美。童程童美专注于中国6-18岁青少儿编程教育,经过多年,研发出针对中国儿童的编程教育体系,在140多所中小学院校开展了编程课程。实行“严选拔、强实力、常培训”的教师管理标准,真人老师全部全职,坚持为学生提供高品质编程素质教育。