アルゴリズム:QQ等級はクラウンの太陽の星の月に換算します

2721 ワード

/// <summary> ///           ///  QQ      /// 2^(2*0) /1    /// 2^(2*1) /4    /// 2^(2*2) /16   /// 2^(2*3) /64   /// </summary> /// <param name="target">    </param> /// <param name="x">    </param> /// <param name="y">      </param> /// <returns></returns>
public IEnumerable<short> A(double target, double x, int y) { if (y < 1 || target <= 0 || x < 1) { return new short[] { 1 }; } var r = new short[y + 1]; for (int i = y; i > 0; i--) { double a = Math.Pow(x, i * 2); r[i] = (short)(target / a); target -= r[i] * a; } r[0] = (short)target; return r; }

考え方は、このレベルがシンボルレベル(4,16,64...)ごとに減少することです.の各見出しページがあります.そして、総等級/各シンボル等級を記録し、この結果、いくつのパターン(クラウン、太陽...)が得られるかを記録する.最大から小さい図案から計算して、最後まで減らして何個の1級の図案(星)です
各シンボルレベルがMathでない場合.Pow(x,i*2)で計算すると、この値の公式を別の値にすればいいはずです.
A(LV,2,4)
参照リンク:
http://www.cnblogs.com/gzhnan/archive/2005/05/27/163466.html