2017-03-16 14 views
-2

3秒以内にこの結果をコンソールに出力するにはどうすればよいですか?私の以前の質問は、静的メソッドエラーに対してはあまりにも具体的であり、最適化部分ではありませんでした。書き込み方法3秒以内に200万レコードを書き込むか?

コンソール上でこの配列の組み合わせを特定の方法で3秒以内に印刷する必要があります。

using System; 

namespace MelodiousPassword 
{ 
    private static int _n; 
    static void Main(string[] args) 
    { 
     _n = Convert.ToInt32(Console.ReadLine()); 
     string[] c = { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z" }; 
     string[] v = { "a", "e", "i", "o", "u" }; 
     Passwords("", c, v); 
     Passwords("", v, c); 
    } 

    static void Passwords(string w, string[] a, string[] b) 
    { 
     if (w.Length == _n) 
      Console.WriteLine(w); 
     else 
      foreach 

      (var l in a) { Passwords(w + l, b, a); } 
    } 
} 
+0

静的メソッドから非静的プロパティを参照することはできません。http://stackoverflow.com/questions/2559527/non-static-variable-cannot-be-referenced-from-a-static-contextを参照してください。 –

+0

[本当にしたい場合はインスタンス変数にアクセスできます](http://stackoverflow.com/questions/3371839/is-it-possible-to-access-an-instance-variable-via-static-method )しかし、私も静的にすることをお勧めします。 – mbx

+1

@TiesonT。あなたの "複製"は[タグ:java]で、[タグ:C#]ではありません - この場合、どちらも同じように振る舞いますが、私は一般的に別の言語の回答を参照することを勧めません。 – mbx

答えて

1

Mainメソッドは静的メソッドなので、あなたも、静的にn変数を変更する必要があります。このようにしてください:

internal static int n; 

それ以外は、別のエラーがあるようです。 Passwordsメソッドに4つの引数を渡していますが、このメソッドは3つのパラメータしか持っていません。

希望すると助かります!

+0

ありがとう、これが助けになった! – Matt

関連する問題