python高级练习题:下一个较高值#3【难度:4级】:
我们定义了一个整数n的
阶乘数字和
,
FDS(n)的
,化合物由数字
D1D2D3 ... DK
,`因为它如下:
FDS(N)= D1! + D2! + D! + ... + DK!
让我们来计算这个功能
N = 3732的价值为
例如.:
FDS(3732)= 3! + 7! + 3! + 2! = 1 * 2 * 3 + 1 * 2 * 3 * 4 * 5 * 6 * 7 + 1 * 2 * 3 + 1×2 = 6 + 5040 + 6 + 2 = 5054.
一个数的逐行阶乘数字Sum``N
,PFDS(N)
,是FDS(的)
所有可以与正形成,从它的最左边位的任何的数字的总和它的其他数字.
因此,我们在上面具有的PFDS()
对于相同数目的值是:
PFDS(3732)= FDS(3)+ FDS(37)+ FDS(373)+ FDS(3732)= 6 + 5046 + 5052 + 5054 = 15158
这个习题任务:给定的某两个整数N
和k
,是找到最接近整数N
,让我们将其命名为’nf,有一个比
N`更多位数,具有相同的** 数字根(位数相同总和,DR)**,以其在非严格递增顺序位(见下面的注释)中,用:
PFDS(NF)<地板(PDFS(N)/ k)的
让我们来看一个例子:
N = 8970#(DR = 24,用四位数字)
K = 15
与五个数字(一个数位比8970
以上)与他们的数字总和的数目等于24
是为了在第一列中,与PFDS的其相应的值:
与DR NUMS = 24个PFDS(NUM)PFDS(8970)
11499 1088721 1260001
11589 443889 1260001
11679 375129 1260001
11688 123129 1260001
11778 65529 1260001 <--- 65529 * 15 <1260001
所以,NF = 11778
如果给定的数n不能产生具有多一个位的数字或不存在的值,缬氨酸,PFDS,使得:VAL
编程目标:
def find_next_higherIII(n,k):
# your code here
return nf
测试样例:
@test.describe('Example Tests')
def example_tests():
@test.it('Some tests fpr fixed values of n and k')
def example_test_case():
test.assert_equals(find_next_higherIII(3732,10),11256)
test.assert_equals(find_next_higherIII(3732,20),11355)
test.assert_equals(find_next_higherIII(8970,15),11778)
test.assert_equals(find_next_higherIII(8970,30),12777)
test.assert_equals(find_next_higherIII(9999,15),67788)
test.assert_equals(find_next_higherIII(11111,3),-1)
最佳答案(多种解法):
更多关联题目:
python进阶练习题:纸牌屋【难度:2级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
python基础练习题:这些动物都以一两【难度:1级】–景越Python编程实例训练营,不同难度Python习题,适合自学Python的新手进阶
交流讨论:
景越Python基础训练营QQ群
欢迎各位同学加群讨论,一起学习,共同成长!
免责申明:
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars.com/
https://www.codewars.com/kata/next-higher-value-number-3