【Java复习Ⅰ06】递归
2021/5/15 12:27:17
本文主要是介绍【Java复习Ⅰ06】递归,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
20201021
文章目录
- ①校验输入的参数能否组成三角形。
- ②将输入的正整数分解质因数。
- ③打印图案:
- ④有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?输出这些数。
- 小作业:
- 递归:
小作业:
①校验输入的参数能否组成三角形。
创建一个java文件,类名为ValidTools,在类中创建一个方法valid,valid方法包含三个整型(int)参数,分别a、b、c,判断a、b、c能否组成一个三角形,如果能返回true,否则返回false。另外创建一个java文件,类名为TestValid,在TestValid中创建主方法,并调用ValidTools类的valid方法校验输入的参数能否组成三角形。
public class TestValid { public static void main(String[] args) { VaildTools v = new VaildTools(); System.out.println(v.vaild(12,15,26)); }}public class VaildTools { boolean vaild(int a, int b, int c) { boolean isTriangle = true; if (a < 0 || b < 0 || c < 0) { return false; } if (a + b < c || a + c < b || b + c < a) { return false; } return isTriangle; }}
②将输入的正整数分解质因数。
例如:输入90,打印出90=533*2。
##此题涉及递归思想,
void qiuyinshu(int num) { for (int i = 2; i <= num; i++) {// 遍历因数可能为2~本元素 while (num % i == 0) { num = num / i; if(num == 1 ){ System.out.print(i); break; } System.out.print(i+"*"); } } System.out.println(); } void qiuyinshu2(int num) { int count = 0; ArrayList<Integer> list = new ArrayList(); for (int i = 2; i <= num; i++) {// 遍历因数可能为2~本元素 while (num % i == 0) { list.add(i); num = num / i; } } for (int i = list.size() - 1; i >= 0; i--) { if (i == 0) { System.out.println(list.get(i)); break; } System.out.print(list.get(i) + "*"); } }
③打印图案:
void rhombus(int num) { int y0 = 0; int y1 = 0; for (int x = 0; x <= num; x++) { y1 = 2 * num - 4 * Math.abs((num + 1) / 2 - x); y0 = (2 * num - y1) / 2; for (int n = 0; n < y0; n++) { System.out.print(" "); } for (int n = 1; n <= y1; n++) { System.out.print("*"); } System.out.println(); } }
④有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?输出这些数。
public static void main(String[] args) { int count = 0; // 第一个数字在最外层,1~4遍历,第二个数字在第二层…… for (int a = 1; a <= 4; a++) { for (int b = 1; b <= 4; b++) { for (int c = 1; c <= 4; c++) { if (a != b && c != b && c != a) { System.out.print(" " + a + b + c + ""); count++; } } } System.out.println(); } System.out.println("\r共有" + count + "元素"); }
递归:
递归、数学归纳法
递归的思想:
递归不是为了解决一个问题,而是一种方法论(一种稍微直观的思考方式)
方法的封装:
void(返回类型描述) method(){ return ;}
这篇关于【Java复习Ⅰ06】递归的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)