我没有意识到我写的代码是前n个自然数的和,而不是计算n*(n+1)/2
伙计,这让我想起了代数…在MATLAB中更有趣!
与人合作并建立解决问题的信心是很有趣的....nice
好一个。让我想起了以前的学生时代!!
所有具有万博 尤文图斯10或11的解决方案都使用Regexp作弊。
Jon或任何人!
你能解释regexp作弊是如何工作的吗?
如何减少代码的大小?
Mucha fantasía en el titulo
这是什么意思?
这个问题我真得动脑筋了
有趣!
听起来简单却令人讨厌
有趣的问题!
好!
为了清晰,
T =三角形n
我们需要计算给定n的t
这很简单,但很棘手!
为什么这行不通呢?
函数t =三角形(n)
t = 1
i = [1 (n + 1)):
t = t +我;
t
结束
这是有趣的
很酷的问题!
好问题
很酷的问题!
好
好的
这些问题很有趣!
好了!
好
我知道,但我不记得了。我想我得再学一遍。
来自越南的爱
算术级数的和可以解决这个问题。
函数ans = triangle(n)
!回声”功能维护(~)”>。/ assert.m
% Cody团队,请限制regexp和的使用!
结束
????
?
菲利普,你用这个答案解决了所有问题,这就毁了资源。请删除
为什么我必须和一个不能正确解决问题的魔术比赛? ?
MATLAB开始工作和清理这些“解决方案”!万博 尤文图斯
这不是一个主要的解决方案:
三角函数ans = (n)
!回声”功能维护(~)”>。/ assert.m
结束
请删除这个答案,并张贴正确的领先解决方案。
哈哈,这很有趣!GG.
好一个! !
厅堂jaya栖身! !
非常容易
好
你想要一块饼干吗?
: P
测试
如何提高上述解决方案?
三角数可以用高斯公式。它将提高性能。它不会提高科迪的体型。为了提高科迪的大小,你需要黑客。流行的方法是将代码包装到正则表达式中。有人发明它来欺骗评分算法,它就像癌症一样在cody提交中传播。我并不为此感到骄傲,我也在使用这个hack,幸运的是,我意识到它没有意义。建议:不要太在意代码的大小,要在乎代码的质量。大多数超级小的解决方案使用某种欺骗,你不万博 尤文图斯会从中学到很多。
我相信你可以得到一个更有效的解如果你去掉中间变量a。
花哨的裤子
%正确的解决方案
三角函数(n)
t = n;
clc
如果n> 1
对于l = 1:1:(t-1)
l = l + 1;
结束
因为我= 1:1:l
对于k = l:-1:i
fprintf('');
结束
对于j = 1:1:i
流(“*”);
结束
流(' \ n ');
结束
其他的
流(“* \ n”);
结束
%请检查为什么这是不编译
函数进行(n)
t = n;
clc
如果n> 1
对于l = 1:1:(t-1)
l = l + 1;
结束
因为我= 1:1:l
对于k = l:-1:i
fprintf('');
结束
对于j = 1:1:i
流(“*”);
结束
流(' \ n ');
结束
其他的
流(“* \ n”);
结束
不知道为什么它没有评估?不允许使用内置函数?
我想凡事总有更好的解决办法
> >总和(1:5)
ans =
15
> >总和(1:6)
ans =
21
> >总和(1:3)
ans =
6
:)
好一个
你的这项工作做得很好
我认为这对于非常低的数字是有效的,但是当你得到更高的数字时,一个可能更快的方法是
n * (n + 1) / 2
有人能建议如何改进代码的大小吗?
计算上劣质的解决方案太糟糕了。
好
做得好!
简单又好的!
将这个解的分数与sum(1:n)进行比较。使用tic toc和不同大小的n重复高达1,000,000次,我发现n*(n+1)/2要快得多。快一万倍。
我不知道我怎么能有10码的!!
如何计算解的大小?
我们可以做得比for循环更好。
@Micah Beckman不,这个解决方案不是一个“有效”的答案,尽管它得分很高…应该使用sum(1:n)来代替for循环的sum。
虽然人们使用regexp来欺骗得分机制,但是sum(1:n)并不是最有效的。
认识到这是一个从1开始到n结束以1为增量的等差数列很有帮助。这样一个算术级数的和是n*(n+1)/2。如果你使用'tic' 'toc'来计算sum(1:n)和n*(n+1)/2对于非常大的n,你可以看到区别。
当然,这个解决方案虽然简短,但并不是最好的解决方案!显然,最好的解决方案是更有效的:n*(n+1)/2