[面試題]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:總共幾個瓶子
java算法面試題:編寫一個截取字符串的函數,輸入為一個字符串和字節數,輸出為按字節截取的字符串,但要保證漢字不被截取半個, 如“我ABC”,4,應該截取“我AB”,輸入“我ABC漢DEF”,6,應該輸出“我ABC”,而不是“我ABC+漢的半個”。
構造 pack n) -- com post nts throw ... package com.swift; import java.util.Scanner; public class Hanzi_jiequ { public static void m
面試題小記: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