/**
* 数字三角
* 当 n == 7 时输出如下内容
* 1
* 2 2 2
* 3 3 3 3 3
* 4 4 4 4 4 4 4
* 5 5 5 5 5 5 5 5 5
* 6 6 6 6 6 6 6 6 6 6 6
* 7 7 7 7 7 7 7 7 7 7 7 7 7
* @param n
*/
public static void printTriangle(int n){
// 1. 校验参数
if (n < 1){
throw new IllegalArgumentException("n 必须大于 0");
}
// 2. 输出数字三角
for (int i=0; i<n; i++){
int level = i+1;
// 输出空格
for (int j=0; j<n-level; j++){
System.out.print(" ");
}
// 输出数字
for (int j=0; j<1 + 2*i; j++){
System.out.print(level + " ");
}
// 换行
System.out.println();
}
}
/**
* 杨辉三角
* 当 n == 7 时输出如下内容
* 1
* 1 1
* 1 2 1
* 1 3 3 1
* 1 4 6 4 1
* 1 5 10 10 5 1
* 1 6 15 20 15 6 1
* @param n
*/
public static void printYanghuiTriangle(int n){
// 1. 校验参数
if (n < 1){
throw new IllegalArgumentException("n 必须大于 0");
}
// 2. 初始化
int[][] data = new int[n][];
for (int i=0; i<n; i++){
data[i] = new int[i+1];
}
// 3. 赋值
for (int i=0; i<n; i++){
for (int j=0; j<= i; j++){
if (j==0 || j==i){
data[i][j] = 1;
} else {
data[i][j] = data[i-1][j-1] + data[i-1][j];
}
}
}
// 4. 输出
for (int i=0; i<n; i++){
int level = i+1;
for (int j=0; j<n-level; j++){
System.out.print(" ");
}
for (int j=0; j<level; j++){
System.out.print(data[i][j] + " ");
}
System.out.println();
}
}
分享到:
相关推荐
一个算法应该是( )。** **答案:C. 要满足五个基本特性** **解析:** 算法通常被定义为一系列解决问题的步骤,但它必须满足特定的标准才能被称为有效的算法。这些标准包括但不限于: - **输入**:有一个或多个...
在C#面试中,算法题是考察候选人编程基础和逻辑思维能力的重要环节。这里我们将深入探讨几种常见的排序算法,如冒泡排序、选择排序和插入排序,并分析一个递归求斐波那契数列的问题,以及模拟事件处理的简单设计模式...
在实际解题过程中,我们还需要考虑以下几个方面: 1. **时间复杂度与空间复杂度**:优化算法通常是为了减少运行时间和内存使用,因此理解并能估算算法的复杂性至关重要。 2. **数据结构选择**:栈、队列、链表、树...
“算法题__计算机算法设计与分析期末试题4套(含答案).doc”则提供了另外四套期末考试题目,这些题目可能涵盖了算法设计的基本原则、复杂性分析、数据结构的应用等多方面。其中,设计部分可能要求我们编写伪代码或...
这些习题可能涵盖了以下几个核心算法领域: 1. **排序算法**:包括但不限于冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。学习排序算法有助于理解数据如何在不同条件下的组织和操作。 2. **查找...
用Java实现栈的所有操作,并用栈实现几个常见算法题
同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几个)及相应的频率。然后再在这1000个最大的IP中,...
根据提供的文件信息,我们可以归纳总结出以下几个主要的IT知识点: ### 1. 兔子繁殖问题(斐波那契数列) #### 解题思路与代码实现 - **问题描述**:一对兔子从第三个月开始每个月都会产下一对新兔子,而新生的...
学习和实践这些算法题有以下几个好处: 1. 提升逻辑思维:算法题锻炼了逻辑推理和问题分析能力,有助于培养良好的编程习惯。 2. 提高编程效率:熟悉多种算法后,面对实际问题时能更快地找到合适的方法。 3. 适应面试...
算法选择题知识点总结 一、分支限界法与回溯法 ...这些算法选择题涵盖了分支限界法、回溯法、概率算法、素数测试、判定问题难易处理和函数的阶等多个方面的知识点,旨在考察读者的算法基础和逻辑思维能力。
本文将围绕“JAVA经典算法30题”这一主题,详细解读其中几个算法的实现逻辑和应用场景,希望能对读者有所启发。 首先,让我们来看第一个经典问题——兔子繁殖问题。这个问题是著名的斐波那契数列问题,即从第三个月...
在准备这类考试时,学生需要对以下几个核心知识点有深入的理解: 1. **排序算法**:包括冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。理解它们的时间复杂度和稳定性,并能根据数据特性选择合适的...
该数列的特点是,每个数都是前两个数的和,数列的前几个数是:0、1、1、2、3、5、8、13、21、…。 在这个程序中,我们使用了循环来计算菲波拉契数列的前 M 个数,M 的值可以根据需要进行设置。在循环体中,我们使用...
由于压缩包中只有一个名为“asp.net+算法题.doc”的文件,可以推测这可能是一个文档,里面详细记录了若干算法题目,可能包括题目描述、解题思路和C#或ASP.NET实现的代码片段。学习者可以通过阅读这份文档,结合自己...
习题答案通常包括以下几个方面的内容: 1. **算法设计**:习题会引导你设计新的算法来解决特定问题。这可能涉及到数据结构的选择,如栈、队列、树、图等,以及如何有效地操作这些结构。 2. **算法分析**:理解一个...
分治法所能解决的问题一般具有以下几个特征:该问题的规模缩小到一定的程度就可以容易地解决;该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质;利用该问题分解出的子问题的解可以合并为该...
设计良好的算法需要考虑以下几个方面: 1. 正确性:算法必须能够正确地解决预定的问题。 2. 效率:算法应尽可能快,即时间复杂度较低。 3. 空间效率:算法占用的内存空间应尽可能少,即空间复杂度较低。 4. 可读性...
对于GCD,用较大的数除以较小的数,然后用余数替换较大的数,重复这个过程,直到余数为0,最后的除数就是GCD。LCM可以通过两数相除以GCD得到。 【程序 7】此题要求统计输入字符串中字母、空格、数字和其他字符的...
通过以上概述可以看出,《现代计算机常用数据结构和算法习题》覆盖了算法的基础知识、几种重要的排序算法以及高效的线性时间排序方法等内容。这些知识点不仅对于计算机专业的学生非常重要,也对软件开发者和其他对...