自己写的一个递归程序,难得写一次递归的程序,拿出来晒晒
题目:
输入:
8 --错误的数
5 --将下边数字累加得总数
2
3
4
1 --总数为5+2+3+4+1=15
0 --0为结束标志
输出:
1 2 4 --1+2+4=7 7+8=15
2 5 --2+5=7 7+8=15
3 4 --3+4=7 7+8=15
import java.util.Arrays;
import java.util.Scanner;
public class LastNumber {
private static final int MAX=100;
private static int[] tnum;
private static int[] num;
public static void main(String[] args) {
int mis;
int total = 0;
int last = 0;
int count = 0;
tnum = new int[MAX];
Scanner sc = new Scanner(System.in);
mis = sc.nextInt();
while(true){
tnum[count]=sc.nextInt();
if(tnum[count]==0)break;
total+=tnum[count];
count++;
}
num = new int[count];
for(int i=0;i<count;i++)
num[i] = tnum[i];
Arrays.sort(num);
last = total-mis;
for(int i=0;i<num.length;i++)
find_last(num,i,0,last,"");
}
public static void find_last(int[] a,int cur,int total,int last,String pix){
total+=a[cur];
if(total==last){
System.out.println(pix+a[cur]);
}else if(total<last){
for(int i=1;i<a.length-cur;i++)
find_last(a,cur+i,total,last,pix+a[cur]+" ");
}
}
}
分享到:
相关推荐
Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE...
4. **终止条件**:每种递归问题都需要一个明确的终止条件,否则会导致无限递归,程序将无法停止。 5. **问题分解**:递归通常用于将大问题分解为更小的子问题。例如,计算阶乘可以用递归表示为`n! = n * (n-1)!`,...
本篇主要介绍的是使用Java编写的一个递归下降分析程序,这种解析方法是编译器设计中的常见技术之一。 递归下降分析,又称自顶向下解析,是一种基于上下文无关文法(Context-Free Grammar, CFG)的解析策略。它的...
递归 冒泡 长整型加法 空心菱形 空心方形 用java 写的一些常用而且 基础的东西。 如果有人想跟我探讨长整型乘法 和 空心菱形 最简单代码 本人都有方法
本文将详细解析如何使用Java编写一个递归程序来搜索Windows文件夹,以及涉及到的相关知识点。 首先,我们需要理解递归的概念。递归是指函数或方法在执行过程中调用自身的行为。在文件夹搜索的上下文中,递归通常...
在Java中,我们需要为每个非终结符设计一个递归子程序。这些子程序通常以方法的形式存在,它们接受输入的符号流,根据文法规则进行匹配,并返回一个表示当前非终结符的AST节点。例如,对于一个表达式非终结符,我们...
摘桃子问题是一个经典的递归应用案例,问题描述为:“有一个人摘桃子,第一天摘下树上桃子的一半再多吃一个,以后每天吃前一天剩下桃子的一半再多吃一个,到第10天只剩下一个桃子,问原来树上有多少个桃子?...
在Java中编写递归函数时,需要注意两个关键点:**基本情况**(base case)和**递归情况**(recursive case)。 - **基本情况**:这是递归结束的条件。对于阶乘来说,基本情况通常是`n == 0`时返回`1`。 - **递归...
Java递归是编程中一种强大的技术,主要用于解决那些可以分解为相同或类似子问题的问题。在Java中,递归主要应用于排序和查找算法,这两者都是数据处理的基础操作。本资料包聚焦于如何使用递归来实现这些算法,下面将...
本文将详细解析标题为“Java递归获取匹配后缀的文件列表”的程序,它演示了如何使用Java来递归地查找指定路径下具有特定后缀的文件,并将它们的路径或名称存储在列表中。 首先,让我们了解递归的基本概念。递归是指...
在这个实例中,我们将深入探讨如何使用Java递归实现阶乘计算,并以1到10的数字为例进行演示。 阶乘是一个数学概念,表示一个正整数n的所有小于等于n的正整数的乘积,通常表示为n!。例如,5的阶乘(5!)是5 × 4 × ...
### Java版二叉树遍历非递归程序详解 #### 一、引言 在计算机科学领域中,二叉树是一种常见的数据结构,其在算法设计、数据存储以及搜索等方面有着广泛的应用。对于二叉树的操作,遍历是其中非常重要的一项技术。...
在给定的代码片段中,我们看到了一个名为`DiGui`的类,该类包含了一个名为`getDir`的方法,用于递归地列出指定路径下的所有子目录和文件。 ```java import java.io.File; public class DiGui { static void get...
如果`filePath`指向的是一个文件,那么函数将检查该文件名是否存在于`fileName`数组中。如果匹配,文件将被删除,并设置全局变量`isDel`为`true`。 ### 关键知识点二:文件与目录操作 Java的`java.io.File`类提供...
在Java编程中,实现地图最短路径的问题通常涉及到图论和算法的应用,特别是回溯和递归策略。这里我们讨论的是一种使用递归方法解决此类问题的实例。首先,我们需要理解基本概念: 1. **图**:在本例中,地图被抽象...
Java 递归算法是 Java 编程中的一种常见算法,通过自调用函数实现复杂问题的解决。下面是 Java 递归算法的相关知识点。 一、递归函数的定义 递归函数是指在函数体内直接或间接地调用自己,即函数的嵌套是函数本身...
- **递归**:一个函数在其定义中调用自身的过程,每次调用都处理问题的一个更小的部分,直到达到基本情况,此时不再进行递归调用。 - **文件和文件夹操作**:Java的`java.io`包提供了处理文件和目录的类,如`File`...
Java 递归算法是指一个函数通过调用自身来解决问题的过程。这种算法通常用于解决可以被分解成相同问题的子问题的问题。它是一种非常强大的技术,可以用于解决许多计算问题,例如搜索,排序和数据结构。 Java 递归...
编制语法分析程序,要求能将词法分析输出的单词文件用给定的语法规则书写的源程序进行语法分析,输出相应的语法分析结果和错误信息。 关于错误信息:不要求错误种类,只需给出出错位置. 简单的表达式文法如下: E...