试验套件被打破了,你很多都怀疑。我修复了它并恢复了问题。
我喜欢这个问题:)
非常有趣的问题
好的
测试案例3完全错误。它需要立即更正。代码制作者没有注意到B = 25是不是单个数字的数字。如果您正在执行其总和,它始终以单个数字最终,它永远不会结束数字原因,原因编号本身携带多个数字。
只是为了徽章;)
函数b = sumDigits(n)
pow = 2 ^ n;
b = 0;
当战俘~ = 0
b = b +国防部(战俘,10);
POW =地板(POW / 10);
结束
结束
代码是错误的。导致虽然DOEST有一个停止条件。
这是作弊,你甚至没有解决这个问题,你刚刚将参数传递给测试套件
直到我们使用int8函数强制b为整数时,程序才获得批准
做得好
函数b = sumDigits(n)
给出n的%sumdigits,找到构成2 ^ n的数字的总和
在= num2str (2 ^ n);
b =总和(str2num ((:)));
结束
这个解并没有覆盖n的整个范围。
此代码给出了Matlab验证的预期结果,不知道为什么它被视为错误的答案
笨拙,但我很高兴^ _ ^
有趣的问题。我想这很少适用。
伟大的!学习Arrayfun的存在
在qs中传递的变量是'n'在解中是'a'
该解决方案利用ASCII字符集很好地有序。
非常聪明!我为什么不这么想!?
伟大:将Char行转换为Char列,使得工作......
这是如何运作的?
这是预计算,查找表。很常见的方法,当输入变量来自小集合时(且计算长而困难)。现在我认为这是在竞争中作弊,抱歉:]
很好,但是这个解不适合和>47
所以在模和和之间切换应该没问题,对吧?
请解释为什么执行(num2str(2 ^ n) - '0')时分离的原因分隔
Num2str将整数转换为该数字的字符串表示形式:1234变成'1234',与['1','2','3','4']相同。现在每个数字都有一个数组项。从那里减去'0',然后char数组将变成一个值为0的双数组,而char是'0',等等。
我不明白为什么a =16时解不成立
B =sum(str2num(num2str(2^a)')是25 for a =16,但它失败了
乌布
这只在(显然)n的数字加起来小于9的情况下有效,这对于当前的测试用例来说是很好的,但之后就不适用了。
这应该不行,因为你应该把2^n的数字相加