一个公式计算的问题?
一个积分,对应一个等级,但一个等级可能对应多个积分,这样,如果给你任意一个积分,怎么用公式算出等级?没有财富了,郁闷……
前面3级情况特殊:
积分:0 = 等级:1
积分:1 = 等级:2
积分:2 = 等级:3
后面情况一样,每4级为一个阶段。
积分:3或4或5 = 等级:4
积分:6或7或8 = 等级:5
积分:9或10或11 = 等级:6
积分:12或13或14 = 等级:7
---------------------------------------------
积分:15或16或17或18或19 = 等级:8
积分:20或21或22或23或24 = 等级:9
积分:25或26或27或28或29 = 等级:10
积分:30或31或32或33或34 = 等级:11
---------------------------------------------
积分:35或36或37或38或39或40或41 = 等级:12
积分:42或43或44或45或46或47或48 = 等级:13
积分:49或50或51或52或53或54或55 = 等级:14
积分:56或57或58或59或60或61或62 = 等级:15
---------------------------------------------
积分:63或64或65或66或67或68或69或70或71 = 等级:16
积分:72或73或74或75或76或77或78或79或80 = 等级:17
积分:81或82或83或84或85或86或87或88或89 = 等级:18
积分:90或91或92或93或94或95或96或97或98 = 等级:19
---------------------------------------------
除了前3级为+0,+1,+1,然后按下面的规则加
1-3级 +0,+1,+1
每4级为一个阶段
4-7级 +2,+3,+3,+3
8-11 +4,+5,+5,+5
12-15 +6,+7,+7,+7
16-19 +8,+9,+9,+9
20-23 +10+11+11+11
24-27 +12+13+13+13
28-31 +14+15+15+15
..... ............
n n+3 +(n/4)×2+[(n/4)×2+1] +[(n/4)×2+1] +[(n/4)×2+1]
注意n是整数,必须去掉小数部分,也不能四舍五入
------解决方案--------------------
C# code
private static int checkLevel(int score)
{
int level = 0;
if (score < 4)
{
level = score + 1;
}
else if (score == 4)
{
level = 4;
}
else
{
int rus = 2;
for (int n = 1; n < int.MaxValue; n++)
{
rus = rus + 8 * n + 4;
if (rus >= score)
{
rus = n;
break;
}
}
level = score / (2 * rus + 1) + (2 * rus + 1);
}
return level;
}