写一个程序,输出从 1 到 n 数字的字符串表示。

1. 如果 是3的倍数,输出“Fizz”;

2. 如果 是5的倍数,输出“Buzz”;

3.如果 同时是3和5的倍数,输出 “FizzBuzz”。

示例:

  1. n = 15,
  2.  
  3. 返回:
  4. [
  5. "1",
  6. "2",
  7. "Fizz",
  8. "4",
  9. "Buzz",
  10. "Fizz",
  11. "7",
  12. "8",
  13. "Fizz",
  14. "Buzz",
  15. "11",
  16. "Fizz",
  17. "13",
  18. "14",
  19. "FizzBuzz"
  20. ]
  1. 1 /**
  2. 2 * Return an array of size *returnSize.
  3. 3 * Note: The returned array must be malloced, assume caller calls free().
  4. 4 */
  5. 5 char** fizzBuzz(int n, int* returnSize) {
  6. 6 char string[] = "0123456789";
  7. 7 int i=0;
  8. 8 char tmp[25]={'\0'};
  9. 9 char ** p;
  10. 10 p=(char **)malloc(sizeof(char *) * n);
  11. 11 if(!p) return NULL;
  12. 12
  13. 13 //开辟空间 **p
  14. 14 for(i=0;i<n;i++){
  15. 15 p[i] = (char *) malloc(sizeof(char) * 9);
  16. 16 if(!p[i]) return NULL;
  17. 17 memset(p[i] , '\0',9);
  18. 18 }
  19. 19
  20. 20 for(i=1;i<=n;i++){
  21. 21 if(i%3 == 0 && i%5 == 0)
  22. 22 {memcpy(p[i-1], "FizzBuzz",strlen("FizzBuzz")); continue;}
  23. 23 else if(i%3 == 0){
  24. 24 memcpy(p[i-1],"Fizz",4);
  25. 25 continue;
  26. 26 }
  27. 27 else if(i%5 == 0){
  28. 28 memcpy(p[i-1],"Buzz",4);continue;
  29. 29 }
  30. 30 else{
  31. 31
  32. 32 //itoa(i,tmp,10);
  33. 33 int t=0,j=0,len;int k=i;
  34. 34 while(k != 0){
  35. 35 t = k%10;
  36. 36 tmp[j++] = string[t];
  37. 37 k = k/10;
  38. 38 }
  39. 39 //roll back
  40. 40 len =j;j=j-1;
  41. 41 while(k<len/2){
  42. 42 tmp[k] =tmp[k] ^ tmp[j];
  43. 43 tmp[j] =tmp[j] ^ tmp[k];
  44. 44 tmp[k] =tmp[k] ^ tmp[j];
  45. 45 k++;j--;
  46. 46 }
  47. 47 memcpy(p[i-1], tmp,strlen(tmp) );
  48. 48 }
  49. 49 }
  50. 50 //for(i=0;i<n;i++)
  51. 51 //printf("%s\n",p[i]);
  52. 52 return p;
  53. 53 }

FizzBuzz的更多相关文章

  1. class Solution(object): def fizzBuzz(self, n): a = [] i = 1 while(i <= n): if(i%15 == 0): a.append("FizzBuzz") elifleetcode day_01

    412. Fizz Buzz Write a program that outputs the string representation of numbers from 1 to n. But fo ...

  2. FizzBuzz 问题

    public class FizzBuzz { static int start = 1; static int end = 100; public static void main(String[] ...

  3. 简单却又复杂的FizzBuzz面试编程问题

    写这篇文章主要是因为偶然看到一篇关于stackoverflow公司的面经中提到了一个有趣的面试编程问题,如题所述:FizzBuzz问题.原文引用如下: “在一些公平的考验之后,我发现那些因为代码而抓狂 ...

  4. 逆FizzBuzz问题求最短序列

    问题描述 FizzBuzz问题:一个大于0的自然数能整除3,将输出“Fizz”:能整除5,将输出“Buzz”:能整除3和5,将输出“FizzBuzz”:否则输出自己. 逆FizzBuzz问题最短序列: ...

  5. 趣味编程:FizzBuzz(Kotlin版)

    fun toFizzBuzzIf(n: Int) = if (n % 3 == 0 && n % 5 == 0) "FizzBuzz" else if (n % 3 ...

  6. 趣味编程:FizzBuzz(Swift版)

    func toFizzBuzzExpr(n: Int) -> String { return n % 3 == 0 && n % 5 == 0 ? "FizzBuzz& ...

  7. fizzbuzz Python很有意思的解法

    写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz” 题目不难,解起来容易,用for循环做if,e ...

  8. FizzBuzz and Fibonacci优化

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  9. 趣味编程:FizzBuzz(Haskell版)

    g :: Int -> Int -> Int -> String g n 0 0 = "FizzBuzz" g n 0 _ = "Fizz" ...

随机推荐

  1. git完全cli指南之详细思维导图整理分享

    一直以来都觉得 在开发过程中 能用命令行的还是用命令行 能用快捷键的就要快捷键 前期可能要点学习成本 但是熟练后带来的好处还是非常可观的 所以一直坚持使用命令行的方式来使用git 基本上每个操作都能心 ...

  2. Java 200+ 面试题补充③ Dubbo 模块

    昨天在我的 Java 面试粉丝群里,有一个只有一年开发经验的小伙伴只用了三天时间,就找到了一个年薪 20 万的工作,真是替他感到开心. 他的经历告诉我们:除了加强自我实战经验之外,还要努力积累自己的理 ...

  3. python 项目自动生成requirements.txt文件

    主要使用目的: 任何应用程序通常需要设置安装所需并依赖一组类库来满足工作要求.通过requirements.txt可以一次性安装程序所需要和依赖的包. 为工程生成requirements.txt的两种 ...

  4. mybatis 使用事务处理

    mybatis默认开启事务 以前使用JDBC的时候,如果要开启事务,我们需要调用conn.setAutoCommit(false)方法来关闭自动提交,之后才能进行事务操作,否则每一次对数据库的操作都会 ...

  5. git 的简单实用

    一. 安装 Git(git_for_windows.xp510.com.rar) 二. 使用 a) 进入到 git bash(命令行工具) b) 初始化user.name,user.email $ g ...

  6. json内存级非关系数据库

    介绍 `jsonDB2`是一个基于内存的键值对数据库(非关系型数据库) 开发初衷:实现个人tornado项目中内存session存储功能(不想引入redis等非关系型数据库) 项目地址: https: ...

  7. C++:位操作基础篇之位操作全面总结

    位操作篇共分为基础篇和提高篇,基础篇主要对位操作进行全面总结,帮助大家梳理知识.提高篇则针对各大IT公司如微软.腾讯.百度.360等公司的笔试面试题作详细的解答,使大家能熟练应对在笔试面试中位操作题目 ...

  8. Vue(一)安装

    环境准备 这里我们就直接使用官方推荐的Vue CLI方式 CLI (@vue/cli) 是一个全局安装的 npm 包,提供了终端里的 vue 命令.它可以通过 vue create 快速创建一个新项目 ...

  9. os.listdir()、os.walk()和os.mkdir()的用法

    内容主要参照博客https://blog.csdn.net/xxn_723911/article/details/78795033 http://www.runoob.com/python/os-wa ...

  10. usb输入子系统键盘(四)

    目录 usb输入子系统键盘 设计思路 内核的上报代码 完整代码 title: usb输入子系统键盘 tags: linux date: 2018/12/20/ 17:05:08 toc: true - ...