![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题
大黑写代码
算法小白,正在修炼。
展开
-
【总结】一维数组、二维数组的声明和初始化
【总结】一维数组、二维数组的声明和初始化1.一维数组的声明和初始化: 1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行 1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行 数组一旦初始化完成,其长度就确定了。示范代码:int num;//声明num = 10;//初始化int id = 1001;//声明 +初始化 int[] ids;//声明//1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new int[]{100原创 2021-03-01 16:05:10 · 987 阅读 · 0 评论 -
使用二维数组打印一个 10 行杨辉三角
使用二维数组打印一个 10 行杨辉三角题目描述:使用二维数组打印一个10行杨辉三角。【提示】第一行有 1个元素, 第 n行有 n个元素每一行的第一个元素和最后一个元素都是 1从第三行开始, 对于非第一个元素和最后一个元素的元素。即:yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];解题思路:1.声明并初始化二维数组 2.给数组的元素赋值 2.1给首末元素赋值 2.2给每行的非首末元素赋值3.遍历二维数组总结:声明并初始原创 2021-03-01 14:23:14 · 1060 阅读 · 4 评论 -
冒泡排序
冒泡排序介绍:冒泡排序的原理非常简单,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。排序思想:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较为止。总结:比较了 (arr.length-1) 趟;每一趟比了 (arr.leng原创 2021-02-28 21:04:05 · 80 阅读 · 0 评论 -
【总结】区分数组的赋值与复制
区分数组的赋值与复制先上结论:赋值与复制完全不同!!总结:1.赋值:只是把array1的地址给了array2,修改array2的话array1也会变!array2 = array1; //只是把array1的地址给了array2 //修改array2的话array1也会变!2.复制:String[] arr = new String[] {"hyj", "hxc", "hdh", "wt", "wtl", "yhp"}; //数组的复制(区别于数组变量的赋值:arr1 = arr原创 2021-02-28 15:57:07 · 343 阅读 · 0 评论 -
算法的考查:数组的复制、反转、查找(线性查找)
算法的考查:数组的复制、反转、查找(线性查找)题目描述:算法的考查:数组的复制、反转、查找(线性查找)解题思路:1.复制(与数组变量的赋值区分开): 需要新建一个数组(长度与原数组相同),然后遍历并对新数组中的元素挨个赋值;2.数组的反转 (注意:是将原数组反转,而不是新建一个数组) 引入临时变量temp即可,这是基本操作,不过for循环里i的范围要注意对应,索引是从0开始的3.查找(线性查找):查找的方法很多,这里讲最笨的线性查找 对数组进行遍历,然后判断是否相等,有两种方法,见程序本原创 2021-02-28 15:03:28 · 101 阅读 · 1 评论 -
求数值型数组中元素的最大值、最小值、平均数、总和等
求数值型数组中元素的最大值、最小值、平均数、总和等题目描述:算法的考查:求数值型数组中元素的最大值、最小值、平均数、总和等定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,和值,平均值,并输出出来。要求:所有随机数都是两位数。解题思路:[10,99]: 运用公式的时候,要保证是闭区间公式:(int)(Math.random() * (99 - 10 + 1) + 10)总结:遍历的时候,是0到arr.length-1,即 for(int i =原创 2021-02-27 15:08:29 · 742 阅读 · 0 评论 -
操作数组的基本方法(java.util.Arrays)
操作数组的基本方法题目描述:对数组进行一些常见的基本操作: 1.判断两个数组是否相等 2.输出数组信息 3.将指定值填充到数组之中 4.对数组进行排序 5.查找数组中的元素解题思路:java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法:1.boolean equals(int[] a,int[] b):判断两个数组是否相等2.String toString(int[] a):输出数组信息 System.out.println(arry):输出的是数组地址原创 2021-02-27 14:34:01 · 127 阅读 · 0 评论 -
100以内的所有质数的输出
100以内的所有质数的输出题目描述:100以内的所有质数的输出。质数:素数,只能被1和它本身整除的自然数。–>最小的质数是:2解题思路:1.遍历2-1002. 从2开始,到这个数-1结束为止,都不能被这个数本身整除。—>是质数3. 其实计算2到Math.sqrt(i)就可以了4. 关键是做个标识 boolean isFlag = true;总结:标识符的使用要记牢!本题Java代码:public class PrimeNumberTest { public stati原创 2021-02-26 22:28:00 · 1158 阅读 · 2 评论 -
用Java语言编写九九乘法表(嵌套循环的使用)
用程序编写九九乘法表题目描述:嵌套循环的应用:九九乘法表1 * 1 = 12 * 1 = 2 2 * 2 = 4…9 * 1 = 9 … 9 * 9 = 81解题思路:根据狗的年龄进行分段计算,用if语句进行判断即可。总结:for循环格式:for(int i=1;i<=150;i++)本题Java代码:public class DogAge { public static void main(String[] args) { int dogAge =原创 2021-02-26 19:32:30 · 713 阅读 · 0 评论 -
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。题目描述:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。解题思路:因为读入的个数不确定,所以需要一个无限循环。当输入为0时,break跳出循环就行。总结:① 最简单“无限” 循环格式:while(true) , for( ; ; ),无限循环存在的原因是并不知道循环多少次,需要根据循环体内部某些条件,来控制循环的结束。② 结束循环有几种方式? 方式一:循环条件部分返回false 方原创 2021-02-26 18:17:54 · 6748 阅读 · 2 评论 -
输入两个正整数m和n,求其最大公约数和最小公倍数。
输入两个正整数m和n,求其最大公约数和最小公倍数。题目描述:题目:输入两个正整数m和n,求其最大公约数和最小公倍数。比如:12和20的最大公约数是4,最小公倍数是60。说明:break关键字的使用解题思路:①最大公约数的求法:令i从min值循环到1(i- -),如果m和n都能整除i,那i就是最大公约数;②最小公倍数的求法:令i从max值循环到m*n(i++),如果i能同时整除m和n,那i就是最小公倍数。总结:①break语句的使用:默认跳出包裹此关键词最近的一层循环。在本题中是for循环,原创 2021-02-26 15:22:36 · 2425 阅读 · 3 评论 -
编写程序从1循环到150,并在每行打印一个值
编写程序从1循环到150,并在每行打印一个值题目描述:编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。格式如下:解题思路:用for循环,然后在依次判断是否是3,5,7的倍数,即使用取余运算%看结果是否为0,写好后注意调整格式保持和图片一致。总结:for循环格式:for(int i=1;i<=150;i++)本题Java代码:public class ForTest1 {原创 2021-02-26 14:37:36 · 1392 阅读 · 0 评论 -
从键盘分别输入年、月、日,判断这一天是当年的第几天
从键盘分别输入年、月、日,判断这一天是当年的第几天题目描述:从键盘分别输入年、月、日,判断这一天是当年的第几天注:判断一年是否是闰年的标准:1)可以被4整除,但不可被100整除或2)可以被400整除解题思路:用switch-case结构就可以,不过注意要是否是闰年。总结:一、如何从键盘获取不同类型的变量:需要使用Scanner类具体实现步骤:1.导包:import java.util.Scanner;2.Scanner的实例化:Scanner scan = new Scanner(原创 2021-02-26 14:15:04 · 4615 阅读 · 1 评论 -
如何获取一个随机数:10-99
如何获取一个随机数:10-99题目描述:如何获取一个随机数:10-99,考察了强制类型转换。解题思路:random生成的是double型 [0.0,1.0)公式:[a,b]:(int)(Math.random() * (b - a + 1) + a)记住这个公式就没有问题强制类型转换:自动类型提升运算的逆运算。1.需要使用强转符:()2.注意点:强制类型转换,可能导致精度损失。代码举例如下://day02 --> VariableTest3double d1 = 12.3;/原创 2021-02-26 12:56:00 · 2427 阅读 · 1 评论 -
测算狗的年龄
测算狗的年龄题目描述我家的狗5岁了,5岁的狗相当于人类多大呢?其实,狗的前两年每一年相当于人类的10.5岁,之后每增加一年就增加四岁。那么5岁的狗相当于人类多少年龄呢?应该是:10.5 + 10.5 + 4 + 4 + 4 = 33岁。编写一个程序,获取用户输入的狗的年龄,通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。解题思路:根据狗的年龄进行分段计算,用if语句进行判断即可。Java代码:public class DogAge { public static vo原创 2021-02-25 22:48:15 · 894 阅读 · 1 评论 -
随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。
随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。题目描述:随意给出一个三位数的整数,打印显示它的个位数,十位数,百位数的值。格式如下:数字xxx的情况如下:个位数:十位数:百位数:例如:数字153的情况如下:个位数:3十位数:5百位数:1解题思路:这题很简单,就用除法符号和取余符号就可以了运算符 / :除法运算符,并且运算结果遵从向下取整。运算符 % :取余Java代码:public class AriExer { public static voi原创 2021-02-25 22:27:15 · 1495 阅读 · 0 评论