您的位置 首页 知识分享

嘶嘶声

程序员的天堂的阶梯,没有逃脱的fizz buzz。在任何地方的采访中都会出现,这也是学习一门新语言时写的一个有…

嘶嘶声

程序员的天堂的阶梯,没有逃脱的fizz buzz。在任何地方的采访中都会出现,这也是学习一门新语言时写的一个有用的小任务。这样做的额外好处是可能会改变您看待问题的方式。

我常用的 解决方案非常简单。

public static string fizzbuzz(int num) {     var divby3 = num % 3 == 0;     var divby5 = num % 5 == 0;     string word;      if (divby3 &amp;&amp; divby5)     {          word = "fizzbuzz";     }     else if (divby3)     {         word = "fizz";     }     else if (divby5)     {         word = "buzz";     }     else     {         word = num.tostring();     }      return word; }  public static void main(string[] args) {     for(var i=1; i    <p>直到我用 c 语言写了这个,我才意识到这种方法是多么浪费。 c 中的内存管理是手动处理的,因此问题所在立即显而易见。在 c# 代码中,我们为每次调用 fizzbu​​zz 创建一个字符串。这是在循环中发生的,因此我们快速分配几个字符串。然而,每个在循环中仅使用一次。之后我们必须等待垃圾收集器注意到这一点并回收字符串使用的内存。</p>  <p>在 c 中,我决定将缓冲区传递给函数。每次通过循环,我们都会清除缓冲区,写入它,然后打印出来。调用者需要做更多的工作,但我们的内存使用效率更高。<br></p>  <pre class="brush:php;toolbar:false">void fizzBuzz(int num, char *buf) {     bool isFizz = num % 3 == 0;     bool isBuzz = num % 5 == 0;      if (isFizz &amp;&amp; isBuzz)     {         sprintf(buf, "%s", "FizzBuzz");     }     else if(isFizz)     {         sprintf(buf, "%s", "Fizz");     }     else if(isBuzz)     {         sprintf(buf, "%s", "Buzz");     }     else     {         sprintf(buf, "%d", num);     } }  int main() {     const size_t BUF_MAX = 128;     char *buf = (char *)malloc(sizeof(char) * BUF_MAX);      for (int i=1; i    <p>花时间用其他语言编写即使是简单的东西也可以改变我们的观点。</p>                                    
登录后复制

以上就是嘶嘶声的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/2102.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部