[iHooya]1月15日寒假班作业解析

news/2024/12/26 23:52:04/

过滤多余的空格
一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。

输入:一行,一个字符串(长度不超过200),句子的头和尾都没有空格。
输出:过滤之后的句子。
样例输入Hello world.This is c language.
样例输出Hello world.This is c language.

#include<bits/stdc++.h>
using namespace std;
//字符串写法
int main()
{string s;getline(cin,s);for(int i=0;i<s.length();i++)if(s[i]!=' '||(s[i]==' '&&s[i+1]!=' '))cout<<s[i];		return 0;
}
#include<bits/stdc++.h>
using namespace std;
//字符串写法
int main()
{char arr[201];cin.getline(arr,201);for(int i=0;i<strlen(arr);i++)if(s[i]!=' '||(s[i]==' '&&s[i+1]!=' '))cout<<s[i];		return 0;
}

爬楼
已知楼梯的数量,可以每次走2级或者3级,求不同的走法数。例如:楼梯一共有7级,一共3种方法:2 2 3或者 2 3 2 或者 3 2 2。

输入:输入包含若干行,每行包含一个正整数N,代表楼梯级数,1<= N<= 50。 最后一行为0,表示测试结束。
输出:不同的走法数,每一行输入对应一行输出

样例输入
7
0
样例输出3

在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;int pl(int n)
{if (n == 1)return 0;else if (n == 2)return 1;else if (n == 3)return 1;elsereturn pl(n - 2) + pl(n - 3);
}
int main()
{int n;
//可以这样写
//	while (cin >> n)
//	{
//		cout << pl(n) << endl;
//	}
//也可以这样写while (1){cin >> n;if (n == 0)break;cout << pl(n) << endl;}return 0;
}

爬楼梯
树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级 也可以第一次走两级,第二次走一级,一共3种方法。

输入:输入包含若干行,每行包含一个正整数N,代表楼梯级数,1 <= N <= 30
输出:不同的走法数,每一行输入对应一行输出

样例输入
5
8
10

样例输出
8
34
89

#include <iostream>
using namespace std;
//没啥可说的斐波那契数列
int N;
int stairs(int n)
{if( n < 0)return 0;if( n == 0 )return 1;return stairs(n-1) + stairs(n-2);
}
int main()
{while(cin >> N) {cout << stairs(N) << endl;}return 0;
}

踩方格
有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:
a. 每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;
b. 走过的格子立即塌陷无法再走第二次;
c. 只能向北、东、西三个方向走;
请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。

输入:允许在方格上行走的步数n(n <= 20)
输出:计算出的方案数量
样例输入2
样例输出7
在这里插入图片描述

#include <bits/stdc++.h>
using namespace std;int walk(int n, int m)
{if (n > 1)if (m == 1)return walk(n - 1, 1) + walk(n - 1, 2) + walk(n - 1, 3);else if (m == 2)return walk(n - 1, 1) + walk(n - 1, 2);else if (m == 3)return walk(n - 1, 1) + walk(n - 1, 3);else if (n == 1)return 1;
}int main()
{int n = 0;cin >> n;cout << walk(n, 1) + walk(n, 2) + walk(n, 3);return 0;
}

http://www.ppmy.cn/news/12372.html

相关文章

【AcWing寒假每日一题2023】Day11——技能升级

目录问题描述思路与代码问题描述 原题链接&#x1f517;&#xff1a;4656. 技能升级 小蓝最近正在玩一款 RPG 游戏。 他的角色一共有 NNN 个可以加攻击力的技能。 其中第 iii 个技能首次升级可以提升 AiA_iAi​ 点攻击力&#xff0c;以后每次升级增加的点数都会减少 BiB_iBi​…

大数据必学Java基础(一百二十三):Maven常见命令介绍

文章目录 Maven常见命令介绍 一、install 二、clean 三、compile 四、package Maven常见命令介绍 Maven的命令非常多,我们只是讲解常用的几个:(所有命令都可以在控制台运行的)

JS入门到精通详解(7)

操作元素样式ele.style访问或设置行内样式window.getComputedStyle()//获取非行内样式 //标准浏览器 // alert(getComputedStyle(o_div,1).width); //IE浏览器 // alert(o_div.currentStyle.width); //兼容 对象 属性 function getStyle(obj,attr){return obj.cur…

Linux学习【教程+实操】【超基础】

链接:资料提取码&#xff1a;6klp 今日内容Linux简介Linux安装网卡设置安装SSH连接工具Linux和Windows目录结构对比Linux常用命令Linux命令初体验文件目录操作命令拷贝移动命令打包压缩命令文本编辑命令查找命令Linux软件安装软件安装方式安装jdk&#xff08;采用二进制发布包…

深入理解数据结构 —— 并查集

什么是并查集 并查集是一种数据结构&#xff0c;主要能够高效地实现以下两个功能 给出图中任意两点a&#xff0c;b&#xff1a; union(a,b) &#xff1a;将a&#xff0c;b所在的集合合并起来isConnected(a,b) &#xff1a;问这a&#xff0c;b两点能否通过任意路径连接起来 …

汇编友好的C编程技巧及其相互调用方法

【摘要】主要介绍如何优化C语言编程来产生最快速度和紧凑的机器指令&#xff1b;汇编与C/C混合编程的方法&#xff1b;ARM C/C编译器介绍 一、C语言编程优化 1. 尽量简化条件表达式 在ARM指令体系中&#xff0c;基本每个指令代码都有4位来表示条件码&#xff0c;这类条件运算…

c++ - 第24节 - c++的IO流

1.C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。printf(): 将指定的文字/字符串输出到标准输出设备(屏幕)。注意宽度输出和精度输出控制。C语言借助了相应的缓冲区…

Acwing---446.回文日期

回文日期1.题目2.基本思想3.代码实现1.题目 在日常生活中&#xff0c;通过年、月、日这三个要素可以表示出一个唯一确定的日期。 牛牛习惯用 8 位数字表示一个日期&#xff0c;其中&#xff0c;前 4 位代表年份&#xff0c;接下来 2 位代表月份&#xff0c;最后 2 位代表日期…