#C++初学记录(阶乘#递归)】的更多相关文章

练习题目三 用递归进行阶乘 运行代码 #include<iostream> using namespace std; int f(int n); int n; int main() { cin>>n; cout<<f(n); } int f(int n) { if(n<=1){ return 1; } return n*f(n-1); } 编写心得 递归的核心个人感觉是在返回return,比如这个阶乘的函数,当他返回值为nf(n-1)的时候,继续带入f(n)的函数…
记住经典的斐波拉契递归和阶乘递归转换为while规律.它为实现更复杂转换提供了启发性思路. # 斐波拉契--树形递归 def fab(n): if n<3: return n return fab(n-1)+fab(n-2) def wfab(n): stacks=[(0,n,None)] while stacks: stg,n,value=stacks.pop() if stg==0: if n<3: res=n else: stacks.append((1,n,None)) stacks.…
<font size=5 face"微软雅黑">N皇后Problem Description <font size=4 face"微软雅黑">在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上. 你的任务是,对于给定的N,求出有多少种合法的放置方法. <font size=5 face"微软雅黑">Input <font s…
深度搜索 走地图的题目是深度搜索里比较容易理解的题目,更深层次的是全排列和七皇后等经典题目,更加难以理解,代码比较抽象. 题目:红与黑 蒜厂有一间长方形的房子,地上铺了红色.黑色两种颜色的正方形瓷砖.你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动. 请写一个程序,计算你总共能够到达多少块黑色的瓷砖. 输入格式 第一行是两个整数 WW 和 HH,分别表示 xx 方向和 yy 方向瓷砖的数量.WW 和 HH 都不超过 2020. 在接下来的 HH 行中,每行包括 WW 个字符.每个字符表示一块…
sort函数 前言:当进行贪心算法的学习时,需要用到sort函数,因为初学c++汇编语言,sort的具体用法没有深入学习,所以这里进行sort学习记录并只有基础用法并借用贪心算法题目的代码. 百度百科:用于C++中,对给定区间所有元素进行排序.头文件是#include algorithm. 编译代码 #include<iostream> #include<algorithm> using namespace std; #define MAXN 100 struct node{ in…
原文 链接 http://blog.csdn.net/iojust/article/details/52429805 - ---热情依旧 - 环境搭建: - jdk环境配置 jdk下载: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装完成后,系统属性->环境变量->系统变量新建JAVA_HOME,变量值为安装路径,如图 - 系统属性里找到path属性,编辑,在后面加 ;…
A - Serval and Bus It is raining heavily. But this is the first day for Serval, who just became 3 years old, to go to the kindergarten. Unfortunately, he lives far from kindergarten, and his father is too busy to drive him there. The only choice for…
A - Game 23 Polycarp plays "Game 23". Initially he has a number n and his goal is to transform it to m. In one move, he can multiply n by 2 or multiply n by 3. He can perform any number of moves. Print the number of moves needed to transform n t…
汉诺塔 题目 用1,2,...,n表示n个盘子,称为1号盘,2号盘,....号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的经典例题存在.可能有人并不知道汉诺塔问题的典故.汉诺塔来源于 印度传说的一个故事,上帝创造世界时作了三根金刚石柱子,在一根柱子上从下往上按大小 顺序摞着64片黄金圆盘.上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱 子上.并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一回只能移动一个圆盘.我们 知道最少需要移动2^64-1次.在移动过程中发现,有的圆盘移动…
并查集 题目 今天是伊格那丢的生日.他邀请了很多朋友.现在该吃晚饭了.伊格那丢想知道他至少需要多少张桌子.你必须注意到并不是所有的朋友都认识对方,而且所有的朋友都不想和陌生人待在一起.这个问题的一个重要规则是如果我告诉你A认识B, B认识C,这意味着A, B, C互相认识,所以它们可以在一个表中.例如:如果我告诉你A知道B, B知道C, D知道E,那么A, B, C可以在一个表中,D, E必须在另一个表中.伊格那丢至少需要两张表.输入以一个整数T(1<=T<=25)开始,它表示测试用例的数量.…
浅入动态规划 dynamic programming is a method for solving a complex problem by breaking it down into a collection of simpler subproblems. 最近进行动态规划的学习,看到了一个很好的例子,现在把它记录下来仅供自我知识梳理 1. 从一个生活问题谈起 作者:阮行止 先来看看生活中经常遇到的事吧--假设您是个土豪,身上带了足够的1.5.10.20.50.100元面值的钞票.现在您的目…
深度搜索:Oil Deposits GeoSurvComp地质调查公司负责探测地下石油储藏. GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块.他们通过专业设备,来分析每个小块中是否蕴藏石油.如果这些蕴藏石油的小方格相邻,那么他们被认为是同一油藏的一部分.在这块矩形区域,可能有很多油藏.你的任务是确定有多少不同的油藏. Input 输入可能有多个矩形区域(即可能有多组测试).每个矩形区域的起始行包含m和n,表示行和列的数量,1<=n,m<=100,如果m =0表示…
环境 jdk7 jre7 当我用jdk7开发的时候,编写完成可执行的jar工具,并且成功使用. 当我在另一台机器安装了jre6,再次运行我的小工具jar 的时候,报错 解决: http://stackoverflow.com/questions/10382929/how-to-fix-unsupported-major-minor-version-51-0-error 重新安装jre7 就可以正常打开了. jre7 的下载地址: http://download.oracle.com/otn/ja…
1. sysout 按回车 System.out.println();…
1.  介绍的话不多说了.直接先来简单的安装跟配置先以3.6版本为例: 附带官网地址: http://www.nopcommerce.com   自行下载. 中文网:http://www.nopchina.net/   有中文包可以下载. 要是更新没有对应最新版本的,可以到中文网的qq群里面下载最新的. NOP主要技术:MVC5 + EF6.1 + .NET4.5 NOP的运行环境要求: 数据库最低:SQL2008 需要.NET4.5 所以很多阿里云服务器之类操作系统要是win2003的话 就没…
发音: 拍怂 语系:类C 特点: 1语句控制不用{}和(),而是强制用户空格或tab缩进.空格和tab数量不一定. 2解释性语言,不需要事先声明变量,即写即用. 3.list 列表可存放多种类型数据.类似于List<object> 4.类型名称相对简单,派送遵从的就是简约原则.如:str表示字符串. 5.很多基本语法的人性化增强,如x,y=2,3  x,y=y,x(交换变量)  a<b<c == a<b and b<c 6.有很多,丰富的内置类型//C#好像也差不多都有…
一.基本语法-let命令 (1)ES6新增了let命令,用来声明变量.所声明的变量,只在let命令所在的代码块内有效. 循环的计数器,就很合适使用let命令.计数器i只在for循环体内有效,在循环体外引用就会报错. 另外,for循环还有一个特别之处,就是设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域. (2)不存在变量提升 var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined. 为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在…
B - Maximal Continuous Rest Each day in Berland consists of n hours. Polycarp likes time management. That's why he has a fixed schedule for each day - it is a sequence a1,a2,-,an (each ai is either 0 or 1), where ai=0 if Polycarp works during the i-t…
C - 不要62 杭州人称那些傻乎乎粘嗒嗒的人为62(音:laoer). 杭州交通管理局经常会扩充一些的士车牌照,新近出来一个好消息,以后上牌照,不再含有不吉利的数字了,这样一来,就可以消除个别的士司机和乘客的心理障碍,更安全地服务大众. 不吉利的数字为所有含有4或62的号码.例如: 62315 73418 88914 都属于不吉利号码.但是,61152虽然含有6和2,但不是62连号,所以不属于不吉利数字之列. 你的任务是,对于每次给出的一个牌照区间号,推断出交管局今次又要实际上给多少辆新的士车…
Max Sum Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input contains an integer…
A - Diverse Strings A string is called diverse if it contains consecutive (adjacent) letters of the Latin alphabet and each letter occurs exactly once. For example, the following strings are diverse: "fced", "xyz", "r" and &q…
位运算 Problem Description7-1 数组元素循环右移问题 一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0 ​​A​1⋯A​N−1)变换为(A​N−M​​ ⋯A​N−1​​ A​0​​ A​1​​ ⋯A​N−M−1​​ )(最后M个数循环移至最前面的M个位置).如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法? 输入格式: 每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0):…
贪心算法#结构体 Problem Description "今年暑假不AC?" "是的." "那你干什么呢?" "看世界杯呀,笨蛋!" "@#$%^&*%..." 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了. 作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事).非常6+7.超级女…
高精度运算 不管是int还是double亦或者long long ,这些定义变量都有数据范围的一定限制,在计算位数超过十几位的数,也就是超过他们自身的数据范围时,不能采用现有类型进行计算,只能自己通过编写程序进行计算也就是高精度运算. 程序代码 #include<iostream> #include<cstring> using namespace std; int main() { char a1[205],b1[205];//数组用来存储两个相加的数 int a[205],b[…
素数判断2 比较简单的算法,没有技术含量 A prime number is a natural number which has exactly two distinct natural number divisors: 1 and itself. For example, the first four prime numbers are: 2, 3, 5 and 7. Write a program which reads a list of N integers and prints th…
练习题目二 素数判断 A prime number is a natural number which has exactly two distinct natural number divisors: 1 and itself. For example, the first four prime numbers are: 2, 3, 5 and 7. Write a program which reads a list of N integers and prints the number o…
练习题目一 (A-复习时间) 为了能过个好年,xhd开始复习了,于是每天晚上背着书往教室跑.xhd复习有个习惯,在复习完一门课后,他总是挑一门更简单的课进行复习,而他复习这门课的效率为两门课的难度差的平方,而复习第一门课的效率为100和这门课的难度差的平方.xhd这学期选了n门课,但是一晚上他最多只能复习m门课,请问他一晚上复习的最高效率值是多少? Input 输入数据的第一行是一个数据T,表示有T组数据. 每组数据的第一行是两个整数n(1 <= n <= 40),m(1 <= m &l…
输入与输出,头文件. #include<iostream> #include<algorithm> using namespace std; int main() { char a[20]; int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++) cout<<a[i]<<endl; return 0; } 头文件,以及输入与输出的初步认识. c…
public class Main { public static void main(String[] args) { for (int i=0;i<11;i++){ System.out.println(jiecheng(i)); } } public static int jiecheng(int n){ if (n==1||n==0) return 1; else{ return jiecheng(n-1) * n; } } }…
原题目:牛客网 题目描述 : 现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞.我们可以在这块奶酪中建立空间坐标系, 在坐标系中,奶酪的下表面为 z = 0,奶酪的上表面为 z = h. 现在, 奶酪的下表面有一只小老鼠 Jerry, 它知道奶酪中所有空洞的球心所在的坐标.如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交, Jerry 则可以从奶酪下表面跑进空洞: 如果一个空…