青蛙爬井【描述】一只青蛙住在 n 英寸深的井的底部。它每次向上爬 u 英寸但是必须休息一次才能再次向上爬。在休息的时候它滑落了 d 英寸。之后它将重复向上爬和休息的过程。青蛙爬出井口需要至少爬多少次如果青蛙爬完后刚好到达井的顶部我们也设作青蛙已经爬出井口。【输入】一行输入n、u、d分别表示井的深度、一次上爬距离、下滑距离中间用空格隔开。(确保nud)【输出】输出青蛙爬出井用的次数。【输入用例】 29 7 1【输出用例】5#includeiostreamusingnamespacestd;intmain(){intn0,u0,d0;cinnud;inttime0/*次数*/,dist0/*爬升的高度*/;while(true){distu;time;if(distn)break;// 高度满足条件则退出循环dist-d;}couttime;// 输出次数return0;}/* 【输入用例2】30 5 1 【输出用例2】8 【输入用例3】45 8 3 【输出用例3】9 【输入用例4】55 12 6 【输出用例4】9 【输入用例5】60 15 2 【输出用例5】5 【输入用例6】99 29 9 【输出用例6】5 */序列操作和查询【描述】 现有一个长度为n的数组对这个数组进行m次操作可以对数组进行的操作分为以下三类:输入1 i:表示输出数组中第i个元素的值;输入2 iv:表示在数组中第i个元素前加入新的元素v;输入3 i: 表示删除数组中的第i个元素。注意:三类操作都要满足in。经过m轮操作后输出的是哪些数字每行一个数字。【输入】第1行一个整数n;第2行是序列中的n个整数。第3行是整数m表示操作次数。接下来m行是m次操作指令每个指令一行。【输出】若干行前面如果有查询则输出查询结果每行一个数字。【样例输入】31 2 323 21 2【样例输出】3#includeiostreamusingnamespacestd;inta[1001];intmain(){intn,m,p,q,v;cinn;for(inti1;in;i)cina[i];cinm;for(inti0;im;i){cinp;if(p1){cinq;couta[q]endl;}elseif(p2){cinqv;for(intjn;jq;j--)//挨个向后移动a[j1]a[j];a[q]v;//单独把插入的数字放入位置n;//数组长度加1}else//p3{cinq;for(intjq;jn;j)//挨个向前移动a[j]a[j1];n--;//数组长度减1}}}return0;}/* 【输入用例2】 1 2 3 4 3 3 2 1 1 2 3 2 3 4 【输出用例2】 2 */数组折叠【描述】李雷和韩梅梅在玩数组折叠游戏游戏规则是给出n个整数按照从左到右的顺序排列现在需要将这列整数从中间折叠m次右边的叠加到左边每次折叠后重合的两个数字会相加变成一个新的数字。请你输出折叠m次后的s数组。【输入】第1行是整数n和m;第2行是数组中的n个整数【输出】为1行。折叠m次后的数组【样例输入】3 11 2 3【样例输出】4 2*/#includeiostreamusingnamespacestd;inta[10010];intmain(){intn,m;cinnm;for(inti1;in;i)cina[i];for(inti1;im;i){for(intj1;jn/2;j)//第一个到中间会变化a[j]a[n-j1];//当前位置元素加上中线对称的元素if(n%2!0)//长度为奇数的数组特殊处理n;n/2;//数组长度对折}for(inti1;in;i)couta[i] ;return0;}/* 【输入用例2】 5 2 1 2 3 5 6 【输出用例2】 10 7 【输入用例3】 7 3 4 2 6 8 7 9 1 【输出用例3】 37 */数字消除【描述】 李雷喜欢玩游戏有一天他在电脑上发现了一个叫“数字消消消”的游戏其规则如下!给定一个长度为n的整型数组指定一个数a如果该数组中有3个及3个以上的a连续出现则该数字将会从数组中消除。【输入】第1行是整数n和a;第2行是数组中的n个整数【输出】1行。输出消除后的数组【样例输入】6 11 1 1 2 2 3【样例输出】2 2 3*/#includeiostreamusingnamespacestd;ints[10010];intmain(){intn,a,num0;cinna;for(inti1;in;i)cins[i];for(inti1;in;i){for(intji;jn;j){//从i出发找与a相同的if(s[j]a)num;elsebreak;}if(num3)//如果练习相同的超过3个iinum-1;//将下标跳过elsecouts[i] ;//否则正常输出num0;//计数器归零}return0;}/* 【输入用例2】 10 3 4 5 8 9 3 3 3 10 12 15 【输出用例2】 4 5 8 9 10 12 15 【输入用例3】 10 6 4 6 6 6 3 3 6 10 12 15 【输出用例3】 4 3 3 6 10 12 15 【输入用例4】 15 12 2 6 9 7 8 13 5 12 12 12 1 2 16 20 3 【输出用例4】 2 6 9 7 8 13 5 1 2 16 20 3 */数组旋转【描述】 将数组逆时针旋转90度【输入】第1行是nm代表n行m列的矩阵接下来输入该矩阵的每个元素值放入定义好的二位数组中。【输出】旋转后的矩阵【样例输入】2 31 5 33 2 4【样例输出】3 45 21 3#includeiostreamusingnamespacestd;constintN1005;intjpg[N][N];intmain(){intn,m;cinnm;for(inti0;in;i)for(intj0;jm;j)cinjpg[i][j];for(intim-1;i0;i--){for(intj0;jn;j)coutjpg[j][i] ;coutendl;}return0;}/* 【输入用例2】 3 4 1 5 3 7 3 2 4 8 9 7 2 5 【输出用例2】 7 8 5 3 4 2 5 2 7 1 3 9 【输入用例3】 5 5 1 5 3 7 9 3 2 4 8 7 9 7 2 5 6 1 2 3 4 5 9 8 7 6 5 【输出用例3】 9 7 6 5 5 7 8 5 4 6 3 4 2 3 7 5 2 7 2 8 1 3 9 1 9 */
C++(模拟法练习题上)
发布时间:2026/6/10 4:10:18
青蛙爬井【描述】一只青蛙住在 n 英寸深的井的底部。它每次向上爬 u 英寸但是必须休息一次才能再次向上爬。在休息的时候它滑落了 d 英寸。之后它将重复向上爬和休息的过程。青蛙爬出井口需要至少爬多少次如果青蛙爬完后刚好到达井的顶部我们也设作青蛙已经爬出井口。【输入】一行输入n、u、d分别表示井的深度、一次上爬距离、下滑距离中间用空格隔开。(确保nud)【输出】输出青蛙爬出井用的次数。【输入用例】 29 7 1【输出用例】5#includeiostreamusingnamespacestd;intmain(){intn0,u0,d0;cinnud;inttime0/*次数*/,dist0/*爬升的高度*/;while(true){distu;time;if(distn)break;// 高度满足条件则退出循环dist-d;}couttime;// 输出次数return0;}/* 【输入用例2】30 5 1 【输出用例2】8 【输入用例3】45 8 3 【输出用例3】9 【输入用例4】55 12 6 【输出用例4】9 【输入用例5】60 15 2 【输出用例5】5 【输入用例6】99 29 9 【输出用例6】5 */序列操作和查询【描述】 现有一个长度为n的数组对这个数组进行m次操作可以对数组进行的操作分为以下三类:输入1 i:表示输出数组中第i个元素的值;输入2 iv:表示在数组中第i个元素前加入新的元素v;输入3 i: 表示删除数组中的第i个元素。注意:三类操作都要满足in。经过m轮操作后输出的是哪些数字每行一个数字。【输入】第1行一个整数n;第2行是序列中的n个整数。第3行是整数m表示操作次数。接下来m行是m次操作指令每个指令一行。【输出】若干行前面如果有查询则输出查询结果每行一个数字。【样例输入】31 2 323 21 2【样例输出】3#includeiostreamusingnamespacestd;inta[1001];intmain(){intn,m,p,q,v;cinn;for(inti1;in;i)cina[i];cinm;for(inti0;im;i){cinp;if(p1){cinq;couta[q]endl;}elseif(p2){cinqv;for(intjn;jq;j--)//挨个向后移动a[j1]a[j];a[q]v;//单独把插入的数字放入位置n;//数组长度加1}else//p3{cinq;for(intjq;jn;j)//挨个向前移动a[j]a[j1];n--;//数组长度减1}}}return0;}/* 【输入用例2】 1 2 3 4 3 3 2 1 1 2 3 2 3 4 【输出用例2】 2 */数组折叠【描述】李雷和韩梅梅在玩数组折叠游戏游戏规则是给出n个整数按照从左到右的顺序排列现在需要将这列整数从中间折叠m次右边的叠加到左边每次折叠后重合的两个数字会相加变成一个新的数字。请你输出折叠m次后的s数组。【输入】第1行是整数n和m;第2行是数组中的n个整数【输出】为1行。折叠m次后的数组【样例输入】3 11 2 3【样例输出】4 2*/#includeiostreamusingnamespacestd;inta[10010];intmain(){intn,m;cinnm;for(inti1;in;i)cina[i];for(inti1;im;i){for(intj1;jn/2;j)//第一个到中间会变化a[j]a[n-j1];//当前位置元素加上中线对称的元素if(n%2!0)//长度为奇数的数组特殊处理n;n/2;//数组长度对折}for(inti1;in;i)couta[i] ;return0;}/* 【输入用例2】 5 2 1 2 3 5 6 【输出用例2】 10 7 【输入用例3】 7 3 4 2 6 8 7 9 1 【输出用例3】 37 */数字消除【描述】 李雷喜欢玩游戏有一天他在电脑上发现了一个叫“数字消消消”的游戏其规则如下!给定一个长度为n的整型数组指定一个数a如果该数组中有3个及3个以上的a连续出现则该数字将会从数组中消除。【输入】第1行是整数n和a;第2行是数组中的n个整数【输出】1行。输出消除后的数组【样例输入】6 11 1 1 2 2 3【样例输出】2 2 3*/#includeiostreamusingnamespacestd;ints[10010];intmain(){intn,a,num0;cinna;for(inti1;in;i)cins[i];for(inti1;in;i){for(intji;jn;j){//从i出发找与a相同的if(s[j]a)num;elsebreak;}if(num3)//如果练习相同的超过3个iinum-1;//将下标跳过elsecouts[i] ;//否则正常输出num0;//计数器归零}return0;}/* 【输入用例2】 10 3 4 5 8 9 3 3 3 10 12 15 【输出用例2】 4 5 8 9 10 12 15 【输入用例3】 10 6 4 6 6 6 3 3 6 10 12 15 【输出用例3】 4 3 3 6 10 12 15 【输入用例4】 15 12 2 6 9 7 8 13 5 12 12 12 1 2 16 20 3 【输出用例4】 2 6 9 7 8 13 5 1 2 16 20 3 */数组旋转【描述】 将数组逆时针旋转90度【输入】第1行是nm代表n行m列的矩阵接下来输入该矩阵的每个元素值放入定义好的二位数组中。【输出】旋转后的矩阵【样例输入】2 31 5 33 2 4【样例输出】3 45 21 3#includeiostreamusingnamespacestd;constintN1005;intjpg[N][N];intmain(){intn,m;cinnm;for(inti0;in;i)for(intj0;jm;j)cinjpg[i][j];for(intim-1;i0;i--){for(intj0;jn;j)coutjpg[j][i] ;coutendl;}return0;}/* 【输入用例2】 3 4 1 5 3 7 3 2 4 8 9 7 2 5 【输出用例2】 7 8 5 3 4 2 5 2 7 1 3 9 【输入用例3】 5 5 1 5 3 7 9 3 2 4 8 7 9 7 2 5 6 1 2 3 4 5 9 8 7 6 5 【输出用例3】 9 7 6 5 5 7 8 5 4 6 3 4 2 3 7 5 2 7 2 8 1 3 9 1 9 */