csharp高级练习题:Codewars风格排名系统【难度:4级】:

写一类称为用户被用来计算用户将通过一个类似于Codewars用途排名系统进展的量.

商业规则:
  • 用户开始于秩-8,可以进步一路8.
  • 没有0(零)排名.接下来的排名后-1 1.
  • 用户将完成的活动.这些活动也有行列.
  • 每次用户完成排名活动的用户等级进度更新基于活动的等级的关
  • 从完成的活动赚取的进步是相对于什么用户当前的等级是相对于活动的等级
  • 用户的排名进步在零开始了,每个时代的进步达到100用户的级别升级到一个新的水平
  • 任何剩余的进步赢得而在此前的排名将朝着下一个等级的进步被应用(不抛出任何进展的距离).唯一的例外是,如果有留下来走向进步没有其他等级(一旦你达到等级8没有更多进展).
  • 用户不能超过8级的进展.
  • 等级值的唯一可接受的范围为-8,-7,-6,-5,-4,-3,-2,-1,1,2,3,4,5,6,7,8.任何其他值应该提出一个错误.

进度打进像这样:

  • 完成该排名相同用户的将是价值300点的活动
  • 完成是一个排名比排名用户的下一个活动将是得1分
  • 任何活动完成了在排名2级或比用户的排名将被忽略,更多的低
  • 完成的活动比目前用户的等级将加快发展等级排名较高.越大的排名之间的差异就越进展将会增加.式是10 *d* D其中D等于在活动和用户之间的排名的差异.
逻辑实例:
  • 如果用户排名-8完成的活动排名-7他们将获得10个进度
  • 如果用户排名-8完成的活动排名-6他们将获得40个进度
  • 如果用户排名-8完成的活动排名-5他们将获得90个进度
  • 如果用户排名-8完成活动排名-4他们将获得160进展,导致用户升级到秩-7和具有获得对他们的下一个秩60个进展
  • 如果用户排名-1完成的活动排名第一,他们将获得10个进步(记住,零等级被忽略)
代码使用的例子:
VAR =用户新的用户()
user.rank // => -8
user.progress // => 0
user.incProgress(-7)
user.progress // => 10
user.incProgress(-5)//将增加90个进度
现在user.progress#=> 0 //进展是零
user.rank#=> -7 //秩升格为-7
用户=新用户()
user.rank#=> -8
user.progress#=> 0
user.incProgress(-7)
user.progress#=> 10
user.incProgress(-5)# 将增加90个进度
现在user.progress#=> 0# 进展是零
user.rank#=> -7# 秩升格为-7
USER = User.new
user.rank#=> -8
user.progress#=> 0
user.inc_progress(-7)
user.progress#=> 10
user.inc_progress(-5)# 将增加90个进度
现在user.progress#=> 0# 进展是零
user.rank#=> -7# 秩升格为-7
用户=用户()
user.rank#=> -8
user.progress#=> 0
user.inc \ _progress(-7)
user.progress#=> 10
user.inc \ _progress(-5)# 将增加90个进度
现在user.progress#=> 0# 进展是零
user.rank#=> -7# 秩升格为-7
用户的用户=新用户();
user.rank; // => -8
user.progress; // => 0
user.incProgress(-7);
user.progress; // => 10
user.incProgress(-5); //将新增90个进度
user.progress;现在// => 0 //进展是零
user.rank; // => -7 //秩升格为-7
秩NEWUSER  -  => -8
进展NEWUSER  -  => 0
让U2 = incProgress(-7)NEWUSER
进展U2  -  => 10
让U3 = incProgress(-5)U2  - 将增加90个进度
进展U3  -  => 0  - 现在进步是零
秩U3  -  => -7  - 秩升格为-7
用户的用户=新用户();
user.rank; // => -8
user.progress; // => 0
user.incProgress(-7);
user.progress; // => 10
user.incProgress(-5); //将新增90个进度
user.progress;现在// => 0 //进展是零
user.rank; // => -7 //秩升格为-7
** 注:** ** 在** Java的一些方法可能会抛出一个`IllegalArgumentException`.
** 注:** ** 在C#** 一些方法可能会抛出一个`ArgumentException`.

** 注意**:Codewars不再使用该算法为自己的排名系统.它采用了基于纯数学的解决方案,给出了一致的结果,无论什么样的顺序一组排名活动正在完成.

编程目标:

// TODO: create the User class/object
// it must support rank, progress, and the incProgress(int rank) method

测试样例:

namespace Solution {using NUnit.Framework;using System;// TODO: Replace examples and use TDD development by writing your own tests[TestFixture]public class SolutionTest{public void MyTest(){Assert.AreEqual("expected", "actual");}}
}

最佳答案(多种解法):

点击查看答案

更多关联题目:

csharp基础练习题:noobCode 01:超码的我…或者说,这个整数!【难度:0级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp基础练习题:TO DE-RY-PO-陆琪暗号【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp进阶练习题:号码动物园巡逻【难度:2级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练

免责申明

本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/codewars-style-ranking-system

csharp高级练习题:Codewars风格排名系统【难度:4级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练相关推荐

  1. csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:ASCII85编解码[难度:3级]: ASCII85是公司的PDF和Postscript内使用的二进制到ASCII编码方案,并在基地64.你的任务是两个新的方法来扩展Strin ...

  2. csharp高级练习题:凡我字谜在哪里?【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:凡我字谜在哪里?[难度:3级]: 什么是字谜?那么,这两个词是彼此的字谜,如果它们都包含相同的字母.例如: "阿爸"和"BAAB" == ...

  3. csharp基础练习题:小数的位数【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:小数的位数[难度:1级]: 确定在一个无符号整数的十进制数字号码.例如,图9是一个数字,66具有2位和128685具有6位数字.要小心,以避免溢出/下溢. 编程目标: publ ...

  4. csharp基础练习题:简单有趣#21:向数氏族【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:简单有趣#21:向数氏族[难度:1级]: 任务 我们叫两个整数A和B的朋友,如果从数组矩阵中的除数每个整数要么是A和B或既不是也不B.如果两个整数是朋友两者的除数,他们说是同宗 ...

  5. csharp基础练习题:noobCode 03:检查这些信件...查看是否在“字符串1”的信件出现在“字符串2”【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:noobCode 03:检查这些信件-查看是否在"字符串1"的信件出现在"字符串2"[难度:1级]: 编写一个函数,检查第二字符串中的字 ...

  6. csharp基础练习题:产品和LCMS之间的差异总和【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:产品和LCMS之间的差异总和[难度:1级]: 在此习题您需要创建一个函数,非负整数对的二维数组/列表并返回的所有"保存",你可以得到[LCM(HTTPS的总 ...

  7. csharp基础练习题:计数阳性/阴性的总和【难度:0级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:计数阳性/阴性的总和[难度:0级]: 鉴于整数数组. 返回一个数组,其中第一元件是阳性数的计数和所述第二元件是负数的总和. 如果输入数组为空或无效,则返回一个空数组. 示例 对 ...

  8. csharp基础练习题:排序数组矩阵由串长度【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:排序数组矩阵由串长度[难度:1级]: 编写一个函数,需要字符串作为参数数组,并返回包含相同字符串的有序排列,下令从最短到最长. 例如,如果该数组被作为参数传递: [ " ...

  9. csharp进阶练习题:算上笑脸!【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp进阶练习题:算上笑脸![难度:2级]: <字体大小= "10">说明结果 给定的数组矩阵(ARR)作为参数完成的功能countSmileys应返回笑脸的总数 ...

最新文章

  1. Android打Path的方法
  2. hdu1261 字串数(排列组合、大整数)
  3. 聚集索引和非聚集索引实例
  4. Java代码03-打印一个菱形
  5. 关于asp.net中partial,asp.net编译笔记
  6. python 列表推导式
  7. 阿里云发布多款云管工具,任何角色都可以轻松完成云上运维
  8. 有人问我,为什么1+1等于2
  9. 点击头像显示大图Dialog
  10. Hadoop的调度器总结(转)
  11. c语言判断奇偶素数,用C语言如何判断素数
  12. 看图纸V3.2.1正式版[看图纸正式版下载]
  13. VOD紧急抱团是利是弊?
  14. do sb suggest to_suggest_suggest to do 和 suggest doing 的区别
  15. 2016年中国前1000名公众号最新报价
  16. matlab 柱状图不同颜色(取巧哈)
  17. 如何安装虚拟机linux
  18. WIN10 VS2013 GTX960M NVIDIA显卡驱动和CUDA7.5安装 配置Caffe
  19. 团队成长的一些方式方法
  20. 【leetcode】592.分数加减运算(python)

热门文章

  1. Fluent UDF中直接调用math.h中的误差函数erf、erfc
  2. 手写数字识别——KNN算法的应用
  3. CMake 的下载安装和使用
  4. 【TrailHead】Create a test harness app and component
  5. Unity 2D 学习笔记:游戏实例Sunnyland
  6. C++ 三阶魔方还原
  7. Mvvm中的Lifecycle
  8. 中国SaaS的机遇、战术和野心
  9. CHAP6:通过可视化艺术共享数据
  10. 3dmax:3dmax的软件两大常用工具之基本二维图形(线、圆、椭圆、弧、多边形、星形、文本、螺旋线、截面、扩展样条线)之详细攻略