アルゴリズム: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