csharp高级练习题:N寄生数在N中结束【难度:5级】:
这个挑战是为各种数字基础计算一组特殊的寄生数字.
n寄生数(在基数10中)是一个正自然数,可以通过将其十进制表示的最右边数字移到前面来乘以n.这里n本身是一位数的正自然数.换句话说,十进制表示经历一个正确的循环移位.例如,4•128205 = 512820,因此128205是4寄生的
特殊寄生数
对于一些N,可能存在多个N寄生数.这个Kata关注的是找到一组特殊的n寄生数,其中尾数也是N寄生数中的’N’.在基数10中,上面的维基百科摘录显示128205是4寄生的,因为4•128205 = 512820;然而,这个Kata正在寻找的特殊数字是最小的4寄生数,也以4结尾,即102564:4•102564 = 410256.
澄清反例
似乎很容易错过要求的"以N结尾"部分.虽然5•142857 = 714285,但这个142857的数字是寄生的,但它不是这个kata所寻求的数字,因为它在那个地方以7结尾而不是’n’(这是5 in这个案例).
对于n = 5,v --- kata要求该数字为5
5•142857 = 714285
^ --- kata要求此数字为5,n = 5
虽然产品恰好在一个位置以5结束,但是对于N的要求是在产品上的被乘数而不是.对于n = 5,所寻求的答案远大于142857.
挑战
提供一个接受两个参数的方法:特殊的尾随数字和一个数字基数.您的方法应该返回具有特殊寄生数属性的最小整数的字符串表示,如上所述,在请求的数字基数(八进制,十进制和十六进制)中.每个数字基数将测试除0和1以外的所有尾随数字,给出共有28个测试用例.