2014-04-22 22 views
-1

這是我完成的代碼,只需要一點點的建議,以便在何處以及如何插入我想要的MessageBox。它需要垂直顯示我的完成序列,謝謝。如何把一個消息框垂直顯示我的斐波那契序列

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

class Program 
{ 
public static double Fibonacci(double n) 
{ 
    double a = 0; 
    double b = 1; 

    for (double i = 0; i < n; i++) 
    { 
     double sum = a; 
     a = b; 
     b = sum + b; 
    } 
    return a; 


    } 

static void Main() 
{ 
    for (double i = 0; i < 12; i++) 
    { 
     Console.WriteLine(Fibonacci(i)); 

    } 


} 
} 
+1

你需要一個不同類型的應用程序比控制檯應用程序的。無論是使用WPF或WinForm有MessageBox – Habib

+0

只是在控制檯中顯示它有什麼問題?在循環之後放置一個Console.Read(),它不會自動關閉。 – Jonesopolis

+0

而不是用'Console.WriteLine'輸出中間結果,你必須將它們合併成單個字符串,然後可以在用'MessageBox.Show'循環後顯示。 'WriteLine'在行尾添加'\ n'(0xD + 0xA),如果是字符串(垂直?),則必須在每個結果後手動添加。 – Sinatr

回答

0

那麼你的代碼,因爲它已經顯示垂直序列。

我假定你的意思水平,在這種情況下,你可以做這樣的事情:

var fibonaccis = Enumerable.Range(0, 11) // generates the numbers 0 to 11 
        .Select(number => Fibonacci(number)); // fibonacci-ify 

var output = String.Join(", ", fibonaccis); 

Console.WriteLine(output); 
+0

不,我的意思是垂直在一個MessageBox中,我知道我最好使用Windows窗體應用程序,但我希望能夠在控制檯應用程序中完成它。 – user3508959

+0

爲什麼你需要使用MessageBox?有沒有什麼理由不能使用簡單的控制檯? –

+0

要求輸出,被告知我不能使用Windows窗體應用程序,也不能將其保留在控制檯中。是的,我知道... – user3508959

1

,如果你真的想顯示一個消息框,請嘗試:

static void Main() 
{ 
    List<double> nums = new List<double>(); 
    for (double i = 0; i < 12; i++) 
    { 
     nums.Add(Fibonacci(i)); 
    } 

    MessageBox.Show(string.Join(System.Environment.NewLine, nums)); 
} 

控制檯應用程序可以顯示一個MessageBox如果你已經包含了正確的庫,並且它看起來像你已經包含了System.Windows.Forms,所以你應該全部設置。

雖然說實話,你的方法效率不高,每次你調用它時,都必須重新計算所有數字,直到你想要的術語爲止。我會用一個yield return,那麼你的Main可以是一個內襯:

class Program 
{ 
    public static IEnumerable<long> Fibonacci(int n) 
    { 
     long a = 0; 
     long b = 1; 

     for (int i = 0; i < n; i++) 
     { 
      yield return a; 

      long sum = a; 
      a = b; 
      b = sum + b; 
     } 
    } 

    static void Main() 
    { 
     MessageBox.Show(string.Join(System.Environment.NewLine, Fibonacci(12))); 
    } 
}