Cappuccino90 icon

Untitled

Cappuccino90 | PRO | 10/25/15 09:34:54 PM UTC | 0 ⭐ | 219 👁️ | Never ⏰ | []
Java |

2.78 KB

|

None

|

0 👍

/

0 👎

package tests2;
 
import java.math.BigInteger;
import java.util.ArrayList;
 
public class Geldwechsel {
 
    static int betrag[] = { 2, 3, 5, 23, 32 };
    static int n = betrag.length;
 
    static ArrayList<Integer> fiboList = new ArrayList<>();
 
    //static long w[][];
    
    static BigInteger[][] w;
    static ArrayList<BigInteger> results= new ArrayList<>();
    
    
/*
    static BigInteger w(int g, int i) {
        return g < 0 ? BigInteger.ZERO
                : i == 0 ? (g % betrag[0] == 0 ? BigInteger.ONE : BigInteger.ZERO)
                       // : w[g][i] != 0 ? w[g][i] : (w[g][i] = w(g, i - 1) + w(g - betrag[i], i));
                        : w[g][i].compareTo(BigInteger.ZERO) != 0 ? w[g][i]:(w[g][i] = w(g, i-1).add(w(g-betrag[i],i)));
    }
  */  
    
    static BigInteger ww(int g, int i) {
        if (g<0) {
            return BigInteger.ZERO;
        } else if (i==0) {
            return (g%betrag[0] == 0 ? BigInteger.ONE : BigInteger.ZERO);
        } else {
            return w[g][i].compareTo(BigInteger.ZERO) != 0 ? w[g][i]:(w[g][i] = ww(g, i-1).add(ww(g-betrag[i],i)));
        }
    }
    
    static BigInteger results(int g, int i) {
        if (g<0) {
            results.add(BigInteger.ZERO);
        } else if (i==0) {
            results.add(g%betrag[0]==0?BigInteger.ONE:BigInteger.ZERO);
        } else {
            if (w[g][i].compareTo(BigInteger.ZERO) != 0) {
                results.add(w[g][i]);
            } else {
                results.add((w[g][i] = results(g, i-1).add(results(g-betrag[i],i))));   
            }
        }
        
        
        
        
        
        
        if (g<0) {
            return BigInteger.ZERO;
        } else if (i==0) {
            return (g%betrag[0] == 0 ? BigInteger.ONE : BigInteger.ZERO);
        } else {
            return w[g][i].compareTo(BigInteger.ZERO) != 0 ? w[g][i]:(w[g][i] = ww(g, i-1).add(ww(g-betrag[i],i)));
        }
        
        
        
        
        
    }
    
    
    
    
    public static void fiboArray(int a, int b) {
        if (b == 102334155) {
            fiboList.add(b);
        } else {
            fiboList.add(b);
            fiboArray(b, a + b);
        }
    }
 
    public static void main(String[] args) {
        fiboList.add(1);
        fiboArray(1, 2);
 
    
        
        
        for (Integer g : fiboList) {
            
            w = new BigInteger[g+1][n];
            
            for (int i = 0; i<w.length; i++) {
                for (int j = 0; j<w[0].length;j++) {
                    w[i][j]=BigInteger.ZERO;
                }
            }
            
           // w = new long[g + 1][n];
            System.out.println(g + "\t" + results(g, n - 1));
        }
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎