.C++信息竞赛及算法第5讲 字符串.pptxVIP

  • 4
  • 0
  • 约1.99千字
  • 约 14页
  • 2024-05-30 发布于广西
  • 举报

学科竞赛编程教研研究院C++NOIPNOIIOI

题目描述小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字(长度不一定,以0结束,最多不超过100个,数字不超过2^32-1),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。小鱼的数字游戏

输入输出格式输入格式:一行内输入一串整数,以0结束,以空格间隔。输出格式:一行内倒着输出这一串整数,以空格间隔。

输入输出样例

1PARTONE#includeiostreamusingnamespacestd;intx[100],c=0;intmain(){for(inti=0;;i++){cinx[i];if(x[i]==0)break;c=i;}for(intj=c;j=0;j--)coutx[j];return0;}

题目描述给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零数字反转

输入格式:一个整数N输出格式:一个整数,表示反转后的新数。输入输出格式

输入输出样例

1PARTONE#includeiostreamusingnamespacestd;intn,k;//反转前的数和反转后的数intmain(){cinn;while(n){//处理完了吗k=k*10+n%10;n/=10;}coutkendl;}

题目描述有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N。一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i*i%5+1),并把脚下的果子吃了,如果上面有果子,在重力作用下,都将向下掉下一格。如第1次跳从第一个果子上跳过1*1*1%5+1=2个果子,可跳到第3个果子上,并把第3个果子吃了;第2次从第4个果子上(落在原来第三个果子位置)跳过2*2*2%5+1=4个到第8个果子上,并把第8个吃了;如此...。当然,总有一次松鼠会跳出这串果子的最前面,设为每K次,它吃不到任何果子了。这时它回到最下面的果子上,重做它的第K次跳,以求吃到果子。如此,问它吃的第m只果子(即第M跳吃到的果子)的标号是什么?松鼠吃果子

输入格式:一共两行,分别为N和m。(1=m=n=200,并且满足能够跳到第m次)输出格式:一个数,即它吃的第m只果子的标号输入输出格式

输入输出样例

1PARTONE#includeiostream#includecstdiousingnamespacestd;constintmaxn=210;intn,m,son[maxn],fa[maxn],pos=1;//son记录后继、fa记录前驱、pos记录松鼠位置voidskip(ints)//往上跳{for(;spos;s--,pos=fa[pos]);}voiddel(intx)//链表的删除操作{pos=fa[x];//更新松鼠的位置fa[son[x]]=fa[x];son[fa[x]]=son[x];fa[x]=son[x]=-1;//被删之后扔掉它}intmain(){cinnm;fa[1]=2,son[n]=n-1;for(inti=2;in;i++)fa[i]=i+1,son[i]=i-1;//初始化for(inti=1;i=m;i++){ints=i*i*i%5+1;skip(s);if(!pos)//跳出去,重新跳{pos=1;skip(s);}if(i==m)//第m次{coutposendl;return0;}del(pos);}return0;}

FutureX科学教育-创新课程像科学家一样思考像工程师一样解决问题

文档评论(0)

1亿VIP精品文档

相关文档