Java算法基础:使用递归算法实现,平方相加1^2 + 2^2 + 3^2 +...+ n^2。

2023-11-10

package algorithm.recursion;
public class RecursionTest {

	public static void main(String[] args) {
		int m = 5;
		
		int sumOfSquares = sumOfSquares(m);
		System.out.println("非递归:  " + sumOfSquares);
		
		int sumSqua1 = recursiveSumSqua1(m);
		System.out.println("递归1:  " + sumSqua1);
		
		int sumSqua2 = recursiveSumSqua2(m);
		System.out.println("递归2:  " + sumSqua2);
		
	}

	// 第一种写法
	private static int recursiveSumSqua1(int n) {
		int sum = 0;
		if(n == 1) {
			sum = 1;
		}else {
			sum = n * n + recursiveSumSqua1(n - 1);
		}
		return sum;
	}

	// 第二种写法
	private static int recursiveSumSqua2(int n) {
		if(n == 1) {
			return 1;
		}else {
			return n * n + recursiveSumSqua2(n - 1);
		}
	}

	// 非递归算法
	private static int sumOfSquares(int n) {
		int sum = 0;
		for (int i = 0; i < n; i++) {
			sum += (i + 1) * (i + 1);
		}
		return sum;
	}
}

水平有限,如有错的地方或需要改进的地方欢迎评论指正。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java算法基础:使用递归算法实现,平方相加1^2 + 2^2 + 3^2 +...+ n^2。 的相关文章

  • 二分法总结

    findN 寻找某个数在递增序列里 找不到返回 1 def findN nums n i 0 j len nums 1 while i lt j middle i j i 2 if nums middle n return True ret
  • Nvidia-docker运行错误- Nvidia-docker : Unknown runtime specified nvidia

    使用nvidia docker的时候 出现了上面的bug 故总结一下 所使用的环境为ubuntu系统64位 GPU2080ti command1 sudo nvidia docker run e NVIDIA VISIBLE DEVICES
  • RLE压缩算法详解

    RLE压缩算法详解 RLE Run Length Encoding 行程长度压缩算法 也称游程长度压缩算法 是最早出现 也是最简单的无损数据压缩算法 RLE算法的基本思路是把数据按照线性序列分成两种情况 一种是连续的重复数据块 另一种是连续
  • 程序员面试题精选100题(41)-把数组排成最小的数

    程序员面试题精选100题 41 把数组排成最小的数 题目 输入一个正整数数组 将它们连接起来排成一个数 输出能排出的所有数字中最小的一个 例如输入数组 32 321 则输出这两个能排成的最小数字32132 请给出解决问题的算法 并证明该算法
  • 几种常用激活函数的简介

    1 sigmod函数 函数公式和图表如下图 在sigmod函数中我们可以看到 其输出是在 0 1 这个开区间内 这点很有意思 可以联想到概率 但是严格意义上讲 不要当成概率 sigmod函数曾经是比较流行的 它可以想象成一个神经元的放电率
  • 程序员面试题精选100题(43)-n个骰子的点数

    程序员面试题精选100题 43 n个骰子的点数 题目 把n个骰子扔在地上 所有骰子朝上一面的点数之和为S 输入n 打印出S的所有可能的值出现的概率 分析 玩过麻将的都知道 骰子一共6个面 每个面上都有一个点数 对应的数字是1到 6之间的一个
  • 线性时间内从一个数组中找出第K个最小的元素——编程珠玑

    线性时间内从一个数组中找出第K个最小的元素 编程珠玑 题目 编写程序 在O n 时间内从数组x 0 n 1 中找出第k个最小的元素 算法中可以对x中的元素进行排序 思路 快速排序选择一个pivot对数组进行划分 左边小于pivot 右边大于
  • 算法设计艺术——编程珠玑第八章

    算法设计艺术 编程珠玑第八章 下面是书本中讲解的四个算法 问题 求一维数组中连续子向量的最大和 例如 a 6 3 4 2 9 10 8 则最大连续子向量的和 为 10 8 18 1 解法一 简单算法 html view plain copy
  • strassen矩阵乘法

    Strassen矩阵乘法简要解析 Strassen矩阵乘法具体描述如下 两个n n 阶的矩阵A与B的乘积是另一个n n 阶矩阵C C可表示为假如每一个C i j 都用此公式计算 则计算C所需要的操作次数为n3 m n2 n 1 a 其中m表
  • 程序员面试题精选100题(40)-扑克牌的顺子

    程序员面试题精选100题 40 扑克牌的顺子 题目 从扑克牌中随机抽5张牌 判断是不是一个顺子 即这5张牌是不是连续的 2 10为数字本身 A为1 J为11 Q为12 K为13 而大小王可以看成任意数字 分析 这题目很有意思 是一个典型的寓
  • 机器学习(machine learning)之AdaBoost算法

    转载自 http blog csdn net haidao2009 article details 7514787 菜鸟最近开始学习machine learning 发现adaboost 挺有趣 就把自己的一些思考写下来 主要参考了http
  • 程序员面试题精选100题(31)-从尾到头输出链表

    程序员面试题精选100题 31 从尾到头输出链表 题目 输入一个链表的头结点 从尾到头反过来输出每个结点的值 链表结点定义如下 struct ListNode int m nKey ListNode m pNext 方法一 看到这道题后 第
  • Java算法基础:使用递归算法实现,平方相加1^2 + 2^2 + 3^2 +...+ n^2。

    package algorithm recursion public class RecursionTest public static void main String args int m 5 int sumOfSquares sumO
  • 程序员面试题精选100题(01)-把二元查找树转变成排序的双向链表

    程序员面试题精选100题 01 把二元查找树转变成排序的双向链表 参见博客 http zhedahht blog 163 com blog static 254111742007127104759245 http www cnblogs c
  • c++二分查找—来自编程珠玑

    c 二分查找 来自编程珠玑 二分查找法 Binary search algorithm 是一个很常见的算法 从 编程珠玑 里再次看到时又有新的收获 直接看代码吧 下面是常见的实现代码 int binary search int a int
  • 贪心算法——排队打水问题

    6 3 排队打水问题 有n个人排队到r个水龙头去打水 他们装满水桶的时间为t1 t2 tn为正整数且个不相等 应如何安排他们打水顺序才能使他们花费的时间最少 算法分析 时间总和 等待时间 装水时间 采用贪心思想 先sort 默认将装水时间从
  • LU分解,LDLT分解,Cholesky分解

    LU分解 如果方阵是非奇异的 即的行列式不为0 LU分解总是存在的 A LU 将系数矩阵A转变成等价的两个矩阵L和U的乘积 其中L和U分别是下三角和上三角矩阵 而且要求L的对角元素都是1 形式如下 本质上 LU分解是高斯消元的一种表达方式
  • 程序员面试题精选100题(30)-赋值运算符重载函数[C/C++/C#]

    程序员面试题精选100题 30 赋值运算符重载函数 C C C 问题 给出如下CMyString的声明 要求为该类型添加赋值运算符函数 class CMyString public CMyString char pData NULL CMy
  • CRC-模2除法

    在循环冗余校验码 CRC 的计算中有应用到模2除法 模2除法的特点就是 每一位除的结果不影响其它位 即不向上一位借位 模2除法原则 1 被除数的首位为1 商为1 2 被除数的首位为0 商为0 3 模2除法等同于按位异或 要保证每次除完首位都
  • KMP算法是怎么被设计出来的

    定义 我们假设要在主串中寻找子串出现的所有位置 我们记主串中的开始位置为匹配位置 如在 abc 中匹配 bc 则匹配位置为 2 暴力 我们把匹配过程拆解为 枚举匹配位置 验证主串从匹配位置开始是否一一匹配子串 以此 有显然的 O n m

随机推荐

  • emacs org-mode插入excel实现的表格内容

    org mode插入excel文本里的表格内容 补充 org mode插入excel文本里的表格内容 excel用于写表格 还是很常用的 excel的表格内容 默认是用Tab键隔开 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4
  • c语言中的where用法,c#查询关键字where 子句的运用

    c 查询关键字where 子句的运用 引导语 where是数据库中的一个指令 一般用于用于规定选择的标准 在c 中同样适用 以下是小编整理的c 查询关键字where 子句的运用 欢迎参考阅读 where 子句用在查询表达式中 用于指定将在查
  • JavaScript黑暗技巧:禁止浏览器点击“后退”按钮

    浏览网页时 当从A页面点击跳转到B页面后 一般情况下 可以点击浏览器上的 后退 按钮返回A页面 如果进入B页面后 B页面想让访问者留下 禁止返回 是否可以实现呢 这简直是要控制浏览器的行为 虽然有些邪恶 但确实可以实现 使用特殊的JavaS
  • ERROR: ExpansionError during parsing

    一开始导入hdf文件时 添加meta adi路径后 报错 解决方法 在虚拟机上挂vpn 这个百度上有很多方法 如果还报错 更新vpn节点
  • Python 基础 之 正则表达式re解析匹配同时获取字符串中的 单引号‘’、双引号“”内的内容

    Python 基础 之 正则表达式re解析匹配同时获取字符串中的 单引号 双引号 内的内容 目录
  • 【Linux之Shell脚本实战】Centos最小化安装环境配置脚本

    Linux之Shell脚本实战 Centos最小化安装环境配置脚本 一 脚本要求 二 检查本地服务器状态 1 检查系统版本 2 查看系统内核版本 三 shell脚本的注释模板配置 1 配置 vimrc 2 查看注释模板效果 四 编写 ini
  • 以太坊智能合约开发:Solidity 语言中的数据类型

    本文我们介绍Solidity语言的数据类型 重点是值类型 包括布尔类型 整型 地址类型 字节类型 字符串类型和枚举类型 并且通过两个智能合约例子 用于演示这些数据类型的声明与使用方法 访问 Github 仓库 获取更多资料 基本概念 Sol
  • idea预览文件以及单击文件设置

    我的idea版本2023 1 该版本 idea默认勾上了Enable Preview Tab 导致我每次选中文件都会覆盖主窗口上的文件 所以我是取消勾选了 Open Files with Single Click就是单击文件会在主窗口上新打
  • 如何在VScode中配置python第三方库

    如何在VScode中配置python第三方库 强调 我这里配置的是Python的库 首先 VScode中需要有有python插件 安装python插件 点击extensions 输入 python 点击install进行安装 文件 首选项
  • ES6 Promise

    同步于个人博客 1 理解Promise 2 new Promise 3 Promise resolve 4 Promise reject 5 Promise prototype then 6 Promise prototype catch
  • 猜测1~100以内数字

    案例 系统随机生成一个1 100之间的数字 玩家进行猜测 如果猜错 提示玩家数字过大或者过小 如果猜对恭喜玩家胜利 并且退出游戏 1 系统生成随机数 添加随机数种子 作用是利用当前系统时间生成随机数 防止每次随机数都一样 srand uns
  • qt中qDebug()无法输出解决办法

    在调试qt程序 无论是debug版本还是release版本 都会遇到此类问题 先将其总结在此 现象描述 无论是头文件还是源文件中都有 include
  • LeetCode热题100道

    文章目录 1 两数之和 2 两数相加 3 无重复字符的最长子串 4 最长回文子串 5 盛最多水的容器 6 删除链表的倒数第 N 个结点 7 Day 2 未完待续 1 两数之和 通往 LeetCode 两数之和 的任意门 解法一 暴力解 采用
  • IE可以打开网页 但是chrome和火狐打不开网页解决办法

    一次偶然 电脑的浏览器打不开常用的网页 奇怪的是IE可以打开 之外的其他浏览器都不可以 结果百度一下 找到一个帖子 亲自测试一下 果真可以解决 记录如下 1 开始 运行 输入CMD 确定 输入netsh winsock reset 按Ent
  • 123-----JS基础-----键盘移动div(通过键盘事件移动div矩形的练习)

    一 代码 很简单
  • DARTS代码分析(Pytorch)

    最近在看DARTS的代码 有一个operations py的文件 里面是对各类点与点之间操作的方法 OPS none lambda C stride affine Zero stride avg pool 3x3 lambda C stri
  • YOLOv7和YOLOv5对比

    YOLO You Only Look Once 是一种基于深度学习的目标检测框架 它通过在单次前向传播中检测所有对象来实现高效目标检测 YOLOv7和YOLOv5是YOLO的不同版本 其中YOLOv7是较新的版本 在计算效率和精度方面 YO
  • IDA调试安卓应用

    先安装好IDA工具 找到需要放到android上的android server文件 我这里是64位的 将android server64放入到手机 data local tmp adb push d as data local tmp as
  • 前端面试题集锦(7)

    目录 1 常见的跨域方式 2 对象的遍历方法 3 数组扁平化 4 typeof 原理 5 介绍类型转化 6 闭包的问题和优化 7 浏览器和Node事件循环的区别 1 常见的跨域方式 JSONP JSONP 是利用外链脚本 没有跨源限制的特点
  • Java算法基础:使用递归算法实现,平方相加1^2 + 2^2 + 3^2 +...+ n^2。

    package algorithm recursion public class RecursionTest public static void main String args int m 5 int sumOfSquares sumO