Java 硬币变化递归项目澄清

Java 硬币变化递归项目澄清,java,recursion,Java,Recursion,我已经编写了代码,用于计算使用递归从1到100之间的任何值中可以得到的变化可能性的数量。我不确定项目中的两个方法是什么(代码中的粗体部分),所以有人能给我解释一下吗?我对java相当陌生 我已经包含了上下文的全部代码,但不确定是否有必要 import java.util.Scanner; 导入java.util.ArrayList; 班长{ 公共静态void main(字符串[]args){ 扫描仪sc=新的扫描仪(System.in); 扫描仪键盘=新扫描仪(System.in); int[]

我已经编写了代码,用于计算使用递归从1到100之间的任何值中可以得到的变化可能性的数量。我不确定项目中的两个方法是什么(代码中的粗体部分),所以有人能给我解释一下吗?我对java相当陌生

我已经包含了上下文的全部代码,但不确定是否有必要

import java.util.Scanner;
导入java.util.ArrayList;
班长{
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
扫描仪键盘=新扫描仪(System.in);
int[]硬币={1,5,10,25};
int answer=sc.nextInt();
如果(回答<1 | |回答>100){
抛出新的IllegalStateException(“输入的值无效:“+answer”);
}否则{
System.out.println(findValue(答案,0,硬币));
}
}
公共静态int find值(int n,int current,int[]硬币){
如果(n>=0&&n<5){
返回1;
}
if(n<0){
返回0;
}
**int num=0;
如果(当前==0&&n%5!=0&&n>5){
n-=n%5;
}
for(int i=当前;i=5){
返回true;
}
返回false;
}
公共静态整数(整数n){
整数计数=0;
如果(n%5==0){
返回n/5;
}
而(n-5>=0){
n=n-5;
计数++;
}
返回计数;
}
公共静态布尔值ISDIMEMABLE(int n){
如果(n>=10){
返回true;
}
返回false;
}
公共静态整数(整数n){
整数计数=0;
如果(n%10==0){
返回n/10;
}
而(n-10>=0){
n=n-10;
计数++;
}
返回计数;
}
公共静态布尔值为四分之一(int n){
如果(n>=10){
返回true;
}
返回false;
}
公共静态int numQuarters(int n){
整数计数=0;
如果(n%25==0){
返回n/25;
}
而(n-25>=0){
n=n-25;
计数++;
}
返回计数;
}
}

你必须一行一行地走每一步。顺便说一句,我认为这套代码目前还不起作用。您可能需要考虑先让代码在没有递归的情况下工作,然后再添加递归

    // seed the current run with the number of coin being removed in this iteration
    int num = 0;
    // current == 0 translates to coins[0] which equals pennies
    // check to see if the number of coins is divisible by 5, because all the coins, other than pennies
    // are divisble by 5
    // the remainder is the number of pennies 
    if (current == 0 && n % 5 != 0 && n > 5) {
        // reduce the current value (n) by the number of pennies
        n -= n % 5;
    }

    // walk the array of available coins, from pennies to quarters and 
    // find the number of coins that can be removed after that value is decremented.
    for (int i = current; i < coins.length; i++) {
        num += findValue(n - coins[i], i, coins);
    }
    return num;
//使用此迭代中移除的硬币数量为当前运行设定种子
int num=0;
//当前==0转换为硬币[0],等于便士
//检查硬币的数量是否可以被5整除,因为所有的硬币,除了便士
//可以被5整除
//剩下的是便士的数目
如果(当前==0&&n%5!=0&&n>5){
//将当前值(n)减去便士数
n-=n%5;
}
//走在一排可用的硬币之间,从便士到25美分不等
//找出该值递减后可以移除的硬币数量。
for(int i=当前;i
您对哪些方法有疑问?我没有看到任何粗体的代码;这是开始吗