鉴于N,找到了组成2 ^ N数字的总和。
例:
输入的n = 7输出B = 11
因为2 ^ 7 = 128,和1 + 2 + 8 = 11 ..
非常有趣的问题
好
测试用例3是完全错误的。它需要立即纠正。代码制造商没有注意到,B = 25是一个数字,不是一个单一的数字。如果你正在做的数字的总和它总是有一个简单的数字结束了,它绝不会与自身携带多个位数原因号码结束。
函数b = sumDigits(n)的
POW = 2 ^ N;
B = 0;
而POW〜= 0
B = B + MOD(POW,10);
POW =地板(POW / 10);
结束
结束
该代码是错误的。事业而行的事有停车条件。
我们的方案没有获得批准,直到我们强迫b可能是与INT8功能的整数
做得好
函数b = sumDigits(n)的
给定n%SUMDIGITS,找到了组成2 ^ N数字的总和
在= num2str(2 ^ N);
B =总和(str2num(在(:)));
结束
该解决方案不包括n个整个范围。
该代码给出预期的结果在MATLAB验证,不知道为什么它被认为是不正确的答案
笨重,但我很高兴^ _ ^
在适量的通过变量是“n”和在溶液中它是“一”
该解决方案充分利用了ASCII字符集是很好的有序的事实。
不错,但这种解决方案并不具有和工作> 47
所以MOD与和之间的切换应该没事吧?
请解释时(num2str(2 ^ n)的 - “0”)为什么数字走散执行
num2str的整数转换成数字的字符串表示:1234变为“1234”,这是相同的[“1”,“2”,“3”,“4”]。现在,你已经得到了每一个数字数组条目。减去“0”从那里,则该字符数组将成为双阵列值为0,其中的炭为“0”等。
这仅适用于(显然)如果N的数字加起来不到9,这是伟大的当前测试情况,但后来不抱起来。
这should't工作,因为你应该总结2 ^ n的位