Java演算法:買蘋果

來自深淵的祝福發表於2018-12-30

題目描述

小易去附近的商店買蘋果,奸詐的商販使用了捆綁交易,只提供6個每袋和8個每袋的包裝(包裝不可拆分)。 可是小易現在只想購買恰好n個蘋果,小易想購買儘量少的袋數方便攜帶。如果不能購買恰好n個蘋果,小易將不會購買。

輸入描述:

輸入一個整數n,表示小易想購買n(1 ≤ n ≤ 100)個蘋果

輸出描述:

輸出一個整數表示最少需要購買的袋數,如果不能買恰好n個蘋果則輸出-1

示例1

輸入

20

輸出

3
import java.util.*;

public class Main{
static int h=0;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int b=rev(n);
        System.out.print(b);
    }
    

    public static int rev(int n){
        int x=0;
        if(n>=6){
        	if(n>=8){
        		h++;
        		rev(n-8);
        		h--;
        	}
        	h++;
        	rev(n-6);
        	h--;
        }
        if(n==0){
        	System.out.print(h+"\n");
        	System.exit(0);
        }
        return -1;
}
}

用了遞迴和貪心演算法,還是比較粗暴

相關文章