常规的for循环:
package com.itcast;
/**
* 用for循环实现1加到100的程序
* @author Administrator
*
*/
public class Sum {
public static void main(String[] args) {
int sum=0;
for(int i=0; i<=100; i++){
sum+=i;
}
System.out.println(sum);
}
}
数组:
package com.itcast;
/**
* 用数组来实现1加到100的程序
* @author Administrator
*
*/
public class ArrayList{
public static void main(String arg[]) {
Integer arr[]=new Integer[100];
int sum=0;
for(int i=0;i<100;i++){
arr[i]=i+1;
}
for(int j=0;j<100;j++){
sum+=arr[j];
}
System.out.println(""+sum);
}
}
递归:
package com.itcast;
/**
* 用递归实现1加到100的程序
* @author Administrator
*
*/
public class DiGui {
public static void main(String[] args) {
System.out.println(diGui(100));
}
public static int diGui(int n){
int result;
if(n == 1){
return 1;
}
else{
result = diGui(n - 1) + n;
return result;
}
}
}
附加上用递归实现n!的算法
package com.itcast;
/**
* 用递归实现n!的程序
* n!的算法
* 当超过数据类型的范围时候,结果会为0;
*
* @author Administrator
*
*/
public class DiGui01 {
public static void main(String[] args) {
System.out.println(fact(5));
}
private static int fact(int i) {
int result;
if(i == 1){
return 1;
}else{
result = fact(i-1)*i;
}
return result;
}
}
分享到:
相关推荐
通过本次课程设计,不仅加深了对递归下降法的理解,还学会了如何设计和实现FOR循环语句的翻译程序。在这个过程中,学习到了如何处理复杂的语法结构以及如何生成有效的中间代码。 此外,还意识到了实际编程中遇到的...
本文将介绍一种不使用递归和两个for循环的高效方法来打印Java二维数组。 首先,理解二维数组的结构。二维数组可以看作是一组一维数组的集合,每个一维数组代表数组的一行。因此,我们可以通过跟踪行索引(`i`)和列...
压缩包文件名为"Project1"可能包含一个编程项目的源代码,该项目可能使用`for`循环来执行特定任务,比如处理数据、遍历文件系统、计算数学序列或者实现游戏逻辑等。在实际项目中,`for`循环常常和其他编程概念结合,...
在Python中,实现全排列的方法通常涉及到递归。如上文实例所示,我们可以定义一个名为`perm`的函数来实现这个功能。首先,我们需要一个基本情况,即当数组长度小于等于1时,返回该数组本身,因为只有一个元素或没有...
当我们需要遍历这种不规则多维数组时,常规的遍历方法如for循环或for...in循环可能无法完全解决问题,因为它们通常要求数组的结构是规则的,即每个子元素都具有相同的数据结构和层次。而递归遍历方法可以很好地应对...
在这个主题中,我们将深入探讨如何用非递归算法来实现大数阶乘计算,并且利用ArrayList来存储中间结果。 首先,让我们了解阶乘的概念。阶乘是数学中的一个运算,对于非负整数n,其阶乘表示为所有小于等于n的正整数...
通常,我们遍历数组的常规方法包括for循环、for...in循环、for...of循环、forEach()方法等。但是在一些特定的场景下,可能需要使用一些不太常见的技巧来遍历数组,这种“另类”的遍历方法或许可以带来更加简洁或高效...
- 遍历数组:知道数组长度可以帮助在循环中控制遍历次数,如`for`或`foreach`循环。 - 分页处理:在分页显示数据时,`count()`可以用于计算总页数。 - 数据库查询优化:在配合数据库查询时,`count()`可用于计算...
4. **递归与迭代实现:** 解决这个问题可以使用递归或迭代的方式,虽然两种方法都可以达到目标,但是考虑到性能,通常推荐使用迭代,因为递归可能会导致栈溢出。 **解题步骤:** 1. 初始化左指针`left`为0,右指针...
我们需要编写各种测试用例,包括边界情况(如全零数组、全一数组、负数等)和常规情况,确保程序在各种输入下都能正确运行并找出所有可能的24点解。 通过这个24点程序课程设计,不仅可以提升C++编程技能,还能锻炼...
- **流程控制**:如条件语句(if-else)、循环(for, while)和跳转语句(break, continue)的使用。 - **函数调用与定义**:函数参数传递、返回值、函数的嵌套与递归。 - **数组与指针**:数组的操作、指针的...
根据给定文件的信息,我们可以看出文件涉及到计算机算法设计与分析课程中一些常规题目的代码实现。具体而言,文件中提及了合并排序算法(Merge Sort)和相关的C及C++语言实现。下面,我们将详细解释这些代码中包含的...
本文将详细介绍五种不同的方法来实现JS数组求和,帮助开发者更好地理解和应用这些技术。 1. **递归方法**: 递归是一种函数调用自身的技术。在数组求和的递归方法中,我们检查数组长度,如果为空则返回0,如果只...
1. **数组表示法**: 使用数组表示大数,每个数组元素代表一位数字。 2. **逐位相乘**: 按照阶乘的定义逐位相乘,并考虑进位。 3. **动态调整数组长度**: 根据乘法结果动态调整数组的长度,以容纳更大的数。 4. **...
5. 条件语句:if、else if等条件语句在文件中被用于执行基于条件的逻辑分支,这是实现程序逻辑控制的重要手段。 6. 循环语句:while、for等循环语句在文档中被用来重复执行代码块,直至满足特定条件。循环是编程中...
其中一道题目要求求解1到n的和,但禁止使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句。 首先,我们来分析这个问题。常规情况下,求解1到n的和可以使用公式`n*(n+1)/2`,但题目设定了...
7. 3-5页要求使用常规G图形函数和公式节点实现相同的功能,同时添加事件处理机制,这涉及到函数的等价性以及事件驱动编程。 8. 设计一个简单的信号源,可以生成正弦波、三角波和方波,并在Waveform Graph上显示。这...
实例063 用指针实现逆序存放数组元素值 79 实例064 输出二维数组有关值 80 实例065 输出二维数组任一行任一列值 81 实例066 使用指针查找数列中最大值、最小值 83 实例067 用指针数组构造字符串数组 84 ...
1. **结构化编程**:C语言支持结构化编程概念,通过函数、循环和选择结构,可以组织代码,使程序结构清晰易懂。 2. **低级特性**:C语言提供了指针操作,可以直接访问内存,这在处理硬件交互和系统级编程时非常有用...
在实现递归算法时,需要注意递归出口,即何时结束递归调用,以及如何通过递归调用来计算结果,如小兔子问题和Fibonacci数列的计算。 分治法是一种将大问题分解为若干小问题并逐个解决的策略。它的基本步骤包括分解...