一个java递回程序
一个java递归程序
自己写的一个递归程序,难得写一次递归的程序,拿出来晒晒
题目:
输入:
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]+" "); } } }