java基础编程题不会

java基础编程题不会文章目录 使用函数求最大值 求 N 的阶乘 求阶乘和 求斐波那契数列的第 n 项 迭代实现 求和的重载 求最大值方法的重载 递归求和 递归打印数字的每一位 返回的数字之和 递归求解汉诺塔问题 创建的数组 并且赋初始值 打印数组 改变原有数组元素的值 求数组的平均值 奇数位于偶数之前 二分查找 两数之和 只出现一次的数字 多数元素 存在连续三个奇数的数组 使用函数求最大值

大家好,我是讯享网,很高兴认识大家。



文章目录

  • 使用函数求最大值
  • 求 N 的阶乘
  • 求阶乘和
  • 求斐波那契数列的第n项。(迭代实现)
  • 求和的重载
  • 求最大值方法的重载
  • 递归求和
  • 递归打印数字的每一位
  • 返回的数字之和
  • 递归求解汉诺塔问题
  • 创建的数组,并且赋初始值
  • 打印数组
  • 改变原有数组元素的值
  • 求数组的平均值
  • 奇数位于偶数之前
  • 二分查找
  • 两数之和
  • 只出现一次的数字
  • 多数元素
  • 存在连续三个奇数的数组

使用函数求最大值

创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
本题比较简单,重点在如何求出两个数的最大值

 
讯享网 

求 N 的阶乘

假设给定数字3,3的阶乘等于1* 2*3。

则有如下代码:

讯享网

方法二:递归

递归代码重要的是推导递推公式:假设N的阶乘用F(n)表示,那么F(n) = n * F(n-1);
递归的优点:代码量少

 

求阶乘和

求1!+2!+3!+4!+…+n!的和

讯享网

求斐波那契数列的第n项。(迭代实现)

斐波那契数列定义为:1 1 2 3 5 8 13 21 我们可以看到,从第3项开始,都等于前一项+前一项的前一项的和。
3=1+2
5+2+3
13 = 5+8
我们可以先定义f1保存第一项的值,f2保存第2项的值,f3保存第3项的值。
每次算法一个f3,就同步更新f1和f2的值。

 

方法二:递归

假设用F(n) 代表第n项斐波那契数列的值,那么F(n) = F(n-1) + F(n-2)的和

 

求和的重载

在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果

重载满足的几个条件:
1、方法名相同
2、参数列表不同(数据类型,个数,顺序)
3、返回值无关

 

求最大值方法的重载

在同一个类中定义多个方法:要求不仅可以求2个整数的最大值,还可以求3个小数的最大值?

本题可以借助Java原生类Math当中的max方法求最大值,当然也可以自己通过If else进行比较。
Math的使用 不需要导入相关的包java基础编程题不会

 

递归求和

递归求 1 + 2 + 3 + … + 10

 

递归打印数字的每一位

按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)

假设用F(n) 代表 要顺序打印n的每一位,如果n是一个1位数,直接输出,如果n是2位数以上。
如:
123 相当于先打印12的每一位,再打印3
12 相当于先打印1的每一位,再打印2
1 只有一位数,直接打印。
依次回退打印完,每一位即可。

 

返回的数字之和

写一个递归方法,输入一个非负整数,返回组成它的数字之和

在这里插入图片描述

 

递归求解汉诺塔问题

汉诺塔是一个比较复杂的问题,这个是专门的讲解视频,大家点击观看:汉诺塔

 

创建的数组,并且赋初始值

创建一个 int 类型的数组, 元素个数为 100, 并把每个元素依次设置为 1 - 100

 

打印数组

实现一个方法 printArray, 以数组为参数, 循环访问数组中的每个元素, 打印每个元素的值.

 

改变原有数组元素的值

实现一个方法 transform, 以数组为参数, 循环将数组中的每个元素 乘以 2 , 并设置到对应的数组元素上. 例如 原数组为 {1, 2, 3}, 修改之后为 {2, 4, 6}

将数组里面的值 扩大2倍,有两种方式,一种是在自己本身上进行扩大,一种是新的数组中扩大。如下代码:

 

求数组的平均值

实现一个方法 avg, 以数组为参数, 求数组中所有元素的平均值(注意方法的返回值类型).

本题比较简单,将数组中的值依次相加,最后除以总长度即可,但需要注意,平均值可能是小数

 

奇数位于偶数之前

调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
如数组:[1,2,3,4,5,6]
调整后可能是:[1, 5, 3, 4, 2, 6]

本题可以使用2个下标,一个从0下标开始,一个从最后一个下标开始。
在这里插入图片描述

 

二分查找

给定一个有序整型数组, 实现二分查找

注意看题,题目中数组是有序的!

二分查找,效率很高,每次都能排除一半的元素。

在这里插入图片描述

 

两数之和

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

 

只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

本题主要考察运算符:异或
异或的特点是:
1、n ^ n = 0;即两个相同的数字异或是0
2、0 ^ n = n;即0和任何数字进行异或,结果就是那个任何数字。

 

多数元素

数组中出现次数超过一半的数字,一定是排好序之后,中间位置的数字。

 

方法二:从第一个数开始count=1,遇到相同的就加1,遇到不同的就减1,减到0就重新换个数开始计数,总能找到最多的那个

 

存在连续三个奇数的数组

给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true ;否则,返回 false 。

示例 1:
输入:arr = [2,6,4,1]
输出:false
解释:不存在连续三个元素都是奇数的情况。

示例 2:
输入:arr = [1,2,34,3,4,5,7,23,12]
输出:true
解释:存在连续三个元素都是奇数的情况,即 [5,7,23] 。

本题比较简单,数字是连续出现的,所以我们只需要定义一个计数器,如果连续出现的次数超过3,则返回true。

小讯
上一篇 2024-12-25 22:37
下一篇 2024-12-28 14:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/10332.html