2014-03-14 45 views
1

你非常高興,因爲你進入了下一輪非常重要的編程比賽。你想讓你最好的朋友知道你有多開心。因此,你會給他發送很多笑臉表情。給你一個int微笑:你想發送的表情圖標的確切數量。需要尋找復發關係的幫助

您已經輸入一個表情符號聊天室。然後,你意識到打字很慢。相反,您將使用複製,粘貼和可能的一些刪除來製作剩餘的表情。

你只能做三個不同的操作:

  • 複製所有您目前到剪貼板表情符號。
  • 從剪貼板粘貼所有圖釋。
  • 從消息中刪除一個圖釋。

每個操作恰恰需要一秒鐘。複製將替換剪貼板的舊內容。粘貼不會清空剪貼板。您不允許複製您已經擁有的部分表情。您不允許從剪貼板中刪除表情符號。

回報中,你可以把一個初始表情笑道表情秒的最小數目。

如何找到這個問題的遞推關係?

+0

這個問題似乎是脫離主題,因爲它屬於http://math.stackexchange.com/ – amalloy

+0

看來,這個問題,減去最後一句,從某處粘貼。你能給我們背景嗎?這可能是一項家庭作業嗎?我們喜歡看人們嘗試,因爲這是最好的學習方式。 – halfer

回答

0

使用該代碼,並根據該程序的輸出添加秒。無限循環的錯誤可能會發生糾正。

/* Input : 95 Output : 64,16,8,4,2,1 
    Input : 69 Output : 64,4,1 
    Input : 277 Output : 256,16,4,1 
    Input : 4 Output : 4 
    Input : 1 Output : 1 
    Input : 1042 Output : 1024,16,2 
*/ 
import java.util.Scanner; 
class Emotions 
{ 
    public static void main(String args[]) 
    { 
     Scanner a = new Scanner(System.in); 
     System.out.print("Enter no. of Emotions : "); 
     int emo = a.nextInt(); 
     value(emo); 
    } 
    public static void value(int x) 
    { 
     int emo = x; 
     int n = 1; 
     do { 
     n = n * 2; 
     }while(emo > n); 
     n = n/2; 
     System.out.println(n); 
     while((emo - n) != 1) 
     { 
      value(emo-n); 
     } 
    } 

} 
+0

請問你能否描述答案。 – Ante