![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法初级
小白阿灿
这个作者很懒,什么都没留下…
展开
-
C++统计方形
有一个n*m方格的棋盘,求其方格包含多少正方形、长方形(此处长方形不包含正方形)这样我们就可以知道得到正方形个数的规律了,正方形最大的边长就是n,m中小的那个。正方形边长为1时 正方形的个数 (n-0)*(m-0)正方形边长为2时 正方形的个数为(n-1)*(m-1)正方形边长为3时 正方形的个数为(n-2)*(m-2)我们就可以求出矩形的个数减去正方形的个数 矩形的个数就是。当正方形的边长为2时,有(3-1)*(2-1)=2个。得到的总数减去正方形的个数就得到长方形的个数了。就以输入2 3为案例。原创 2022-10-28 22:14:58 · 1462 阅读 · 0 评论 -
C++给同学分组
换句话说,map 容器中存储的各个键值对不仅键的值独一无二,键的类型也会用 const 修饰,这意味着只要键值对被存储到 map 容器中,其键的值将不能再做任何修改。解题:将人数进行两人一组的方式分开,输入其中一组一个人的名字,输出这一组另一个人的名字,考虑这个特性,我们可以使用map存储这类一对一的数据。输出保证s是2n个学生中的姓名之一,并且这2n个学生的姓名互不相同,每位学生姓名字符串长度不超过10。接下来输入n行,每行两个字符串s1,s2,表示姓名为s1的同学和名字为s2的同学是同一组。原创 2022-10-22 14:49:39 · 783 阅读 · 0 评论 -
c++求幂字符串,求字符串转化成a^n形式的最大的n是多少。
解题思路:首先思考如何进行解题,首先输入一个字符串,来求它的幂,那么就可以指定两个string类型的变量比如a,b来接受我们截取的字符串,可以通过循环来截取字符串,定义一个整型k=1,表示截取字符串的位数,首先可以截取字符串的第一个字符放在a中,然后在套用一个循环来截取字符串放在b中,然后加上一个计数器count=0 如果a=b 则count++ 如果a!=b 就退出循环然后k++,下一次来截取两个字符串,如此往复,代码如下。给你一个字符串,请你判断将此字符串转化成a^n形式的最大的n是多少。原创 2022-10-21 21:22:51 · 360 阅读 · 1 评论 -
C/C++,对于一个n*m的矩形,最少可以划分成多少个正方形。
可以了解到以下的情况,当n=m时,其本身就是一个正方形所以可以分1个,当n%m==0时,说明可以被整除 所以可以分为n/m个 比如长12,宽2 最少可以分12/2=6个,下面的情况就是最后一种了 n>m || n原创 2022-10-09 17:14:52 · 2111 阅读 · 8 评论 -
C++,M个苹果放N个盘子内有几种分法,允许空盘,1,5,1 、5,1,1是一种分法
如果分没有空盘的情况,我们可以先把每个盘子都放上一个苹果在进行分,分后我们还有4个苹果,要分3个盘子,所以要继续进行分苹果这个过程 此时是4个苹果分3个盘子,继续分下去可以得到还有1个苹果 3个盘子此时满足第一种情况不能继续分下去了 此时我们要考虑一下空盘的分法,空一个盘,空两个盘,直到盘子只剩一种的情况,所以此时可以在分成两份。一个盘子可以放多个苹果,且允许空盘,那么我们可以利用递归来解题,首先可以分为几种情况,第一种,比如m=1 或者n=1 这种情况只能有一种分法。例子:输入7个苹果 3个盘子。原创 2022-10-08 21:06:13 · 1731 阅读 · 1 评论