1. 程式人生 > >[面試題]N個人買可樂,買5瓶送一瓶,至少要買幾瓶可樂夠喝?

[面試題]N個人買可樂,買5瓶送一瓶,至少要買幾瓶可樂夠喝?

常見面試題:N個人買可樂,買5瓶送一瓶,至少要買幾瓶可樂夠喝?

遞迴解決:

引數說明:

people : 總共人數也就是N

real:當前幾個瓶子可以兌換

buy:掏錢錢買的瓶數

sum:總共幾個瓶子

package site.iknown.farm.test;

public class Main
{
	private static int divide(int people, int empty, int buy, int sum)
	{
		if(empty != 5)
		{
			//空的瓶子不夠,需要買新的
			buy++;
			empty++;
		}
		else
		{
			//換了一個瓶子,還剩一個瓶子
			empty = 1;
		}
		sum ++;
		return people == sum ? buy : divide(people, empty, buy, sum);
	}
	public static void main(String[] args)
	{
		for(int i=1;i<=1024;i++)
		{
			System.out.println(i+"人需要買"+divide(i, 0, 0, 0)+"瓶可樂");
		}
	}
}


相關推薦

[試題]N個人可樂5至少可樂

常見面試題:N個人買可樂,買5瓶送一瓶,至少要買幾瓶可樂夠喝? 遞迴解決: 引數說明: people : 總共人數也就是N real:當前幾個瓶子可以兌換 buy:掏錢錢買的瓶數 sum:總共幾個瓶子

試題小記:1、統計字符串出現的次數2、約瑟夫環問題

lse UNC aaa ret nal 約瑟夫環問題 b2c else 用法 今天面到了一個比較有意思的筆試題,先記錄一下:1.字符串類似‘aaabbccddd’,寫個方法得出‘3a2b2c3d‘,即統計字符串出現的個數$arr = str_split(‘aaabbccdd

java初級試題個人總結)

java基礎 1、String、StringBuffer以及StringBuild的區別? 答:這三個類之間的區別主要是在兩個方面,即執行速度和執行緒安全這兩方面     執行速度:StringBuilder > StringBuffer > String

Java高階程式設計師試題個人建議收藏+分享)

1.你認為專案中最重要的過程是那些? 分析、設計階段 儘量找出進度的優先順序 2.如果給你一個4-6人的team,怎麼分配? 挑選一技術過硬的人作為我的替補。其它人平均分配任務,每週進行全面的任務分配,每個人領取一週的工作量 ,每天彙報進度。 3.簡述軟體開發文件

Java經典試題(N人迴圈報M個數出列)實現

面試題:  設有N個人依次圍成一圈,從第1個人開始報數,第M個人出列,然後從出列的下一個人開始報數,數到第M個人又出列,...,如此反覆到所有的人全部出列為止,設N個人的編號分別為1,2,...,N,打印出出列的順序,要求用java實現。 參考程式碼: package

關於阿里春招的一道多執行緒試題個人愚見

原題如下:    多執行緒,5個執行緒內部列印hello和word,hello在前,要求提供一種方法使得5個執行緒先全部打印出hello後再列印5個word。參考文章:程式碼如下:    five.javapublic class Five { //定義一個公共鎖物件

百度試題之二叉樹層次遍歷(從上到下從下到上)

1.二叉樹的層次遍歷 遞迴解法 class Node(object): def __init__(self, v, left=None, right=None): self.value = v self.left = l

二叉樹試題--已知二叉樹的兩種遍歷序列求出另種遍歷序列

已知先序遍歷序列和中序遍歷序列,求出後序序列   或者   已知中序序列和後序序列 , 求出先序遍歷。。都是一些考試中容易考的題目。 經過研究發現,已知先序序列和後序序列,無法唯一確定一棵樹,所以就無

劍指Offer試題33:把陣列排成最小的數 Java 實現三種方法

題目:把陣列排成最小的數    輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列{3,32,321},則打印出這3個數字能排成的最小數字321323. 演算法分析: 1.最直接的辦法就是先求出這個陣列中所有數字

2017年秋招Java面試高頻試題個人整理)

Java基礎: 多型(原理、實現) 過載和覆蓋 抽象類、介面區別 ==、equals()、hashcode()-對於基本型別、引用型別分情況 String原理(原始碼中final實現了其不可變,底層資料結構-char陣列)、StringBuilder-執行緒不安全、StringBuffer執行緒安全(原始碼中

n個臺階每次都可以走走兩步走三步走到頂部共有多少種可能

bsp return 頂部 htm pri 每次 lan href com 分析 第一個臺階 1第二個臺階 11 2 //走兩次1步或者走1次兩步第三個臺階 111 12 21 3 第四個臺階 1111 112 121 211 22 13 31 思想:4階臺階

劍指offer 試題50:字元流中第一個只出現次的字元

題目描述:請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是"g"。當從該字元流中讀出前六個字元“google"時,第一個只出現一次的字元是"l"。 解法: 使用雜湊表occurance[256] ;  初始化o

設有n個正整數將他們連線成組成一個最大的多位整數。 如:n=3時3個整數13,312,343,連成的最大整數為34331213。

題目描述 設有n個正整數,將他們連線成一排,組成一個最大的多位整數。 如:n=3時,3個整數13,312,343,連成的最大整數為34331213。 如:n=4時,4個整數7,13,4,246連線成的最大整數為7424613。 輸入描述: 有多組測試樣例,每組測試樣例包含兩行,第一行為一

劍指offer 試題50:字元流中第一個只出現次的字元

題目描述:請實現一個函式用來找出字元流中第一個只出現一次的字元。例如,當從字元流中只讀出前兩個字元"go"時,第一個只出現一次的字元是"g"。當從該字元流中讀出前六個字元“google"時,第一個只出現一次的字元是"l"。 解法: 使用雜湊表occurance[256] ;

《劍指Offer》試題:找出陣列中有3個出現次的數字

題目 一個int陣列中有三個數字a、b、c只出現一次,其他數字都出現了兩次。請找出三個只出現一次的數字。 思路 由於3個數字出現一次,其他數字均出現兩次,因此可以得到n一定為奇數。 3個只出現一次的數字,他們的bit位肯定不可能全部相同,也就是說

php陣列試題$arr1=array(1,2,3,4,5); $arr2=array('a','b','c','d','e');輸出交叉輸出

<?php $arr1=array(1,2,3,4,5); $arr2=array('a','b','c','d','e'); for($i=0;$i<count($arr1);$i++) {echo $arr1[$i].$arr2[$i]; } /* $arr

陣列a[N],1-N-1這N-1個數存放在a[n]中其中某個數重複找出重複數字

public class quchong {     /**      * 數學求和法   陣列所有項求和  減去1-n-1的和      */     public static void main(String[] args) {         // TODO Au