求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 (1)递归法 递归需要退出条件,但是题目限制不能使用if语句,因此可以考虑逻辑运算符的短路效应 if(A&&B) 若A为false,则不会执行B if(A| ...
分类:
其他好文 时间:
2020-06-03 00:55:26
阅读次数:
81
题目:利用递归方法求5!。 程序分析:递归公式:fn=fn_1*4! 实例: 1 #include <stdio.h> 2 3 int main() 4 { 5 int i; 6 int fact(int); 7 for(i=0;i<6;i++){ 8 printf("%d!=%d\n",i,fac ...
分类:
其他好文 时间:
2020-06-02 13:38:44
阅读次数:
86
递归法 思路: 在计算一个数x的n次幂时xn,我们可以先递归计算出x的n//2次幂y=xn//2,然后根据递归计算的结果,如果n是偶数,则结果为xn=y2,否则xn=y2*x。 例如: X77 = (X38)2 * X = ((X19)2)2 * X = (((X9)2 *X)2)2 * X = ( ...
分类:
其他好文 时间:
2020-06-01 13:35:09
阅读次数:
64
快慢指针找链表环相关理论 一、一定会相遇的证明 1、如果链表没有环,那么快指针比慢指针先到达尾部(null)。 2、如果链表有环的话,因为快指针走的比慢指针快,所以在环中相遇的过程可以看作是快指针从环后边追赶慢指针的过程。 用递归法证明,快慢指针一定会相遇: (1)快指针与慢指针之间差一步。此时继续 ...
分类:
其他好文 时间:
2020-05-25 12:03:42
阅读次数:
46
题目: 思路: 循环求余 (x + y) % p = (x % p + y % p) % p,避免超过Int32的取值范围,导致大数越界。 递归法存在大量的重复运算(比如计算n和n 1是都会计算n 2),会超时。 动态规划,利用dp数组。 因为第n项只和前两个元素有关,所以只记录前两个元素。 代码: ...
分类:
其他好文 时间:
2020-05-18 18:44:55
阅读次数:
53
@[toc] 实现 pow(x, n),即计算 x 的 n 次幂函数。其中n为整数。 链接: "pow函数的实现——leetcode" . 解法1:暴力法 不是常规意义上的暴力,过程中通过动态调整底数的大小来加快求解。代码如下: 解法2:根据奇偶幂分类(递归法,迭代法,位运算法) 如果n为偶数,则p ...
分类:
编程语言 时间:
2020-05-10 19:14:22
阅读次数:
75
通过对斐波那契数列和阶乘把递归转循环(是不是所有递归都可以转为循环?) /*斐波那契数列*/ static function getN($n) { if ($n<=0) return 0; if ($n<=2) return 1; /*递归法*/ return static::getN($n-1) ...
分类:
其他好文 时间:
2020-04-29 12:27:11
阅读次数:
56
给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 链接:https://leetcode-cn.com/problems/same-tree 1.递归法 class Solution { public: bool Judge(Tre ...
分类:
其他好文 时间:
2020-04-25 01:03:20
阅读次数:
56
1.递归法 # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: # 返回ListNode def ReverseList ...
分类:
其他好文 时间:
2020-04-20 15:39:28
阅读次数:
44
二叉树最大深度 DFS递归法 BFS(借助队列) ...
分类:
其他好文 时间:
2020-04-12 00:07:49
阅读次数:
72