LeeeCode 412

来源:互联网 发布:ua741数据手册 编辑:程序博客网 时间:2024/05/03 19:07

题目

意思很简单,给出一个n,输出1-n的整数,如果整数是3的倍数,输出”Fizz”,如果是5的倍数,输出”Buzz”,如果是15(同时是3和5的倍数)的倍数,输出”FizzBuzz”。

题解

最简单的解法就是3组if-else判断,利用C语言的char **(二级char指针)存储需要返回的字符串数组(第一级为字符串,第二级为数组)。提交代码框中有说明两点:

返回*returnSize大小的的数组(其实就是n吧)

所以* returnSize = n;貌似没必要,但是如果不写就会返回空数组。

返回的arr数组必须被malloced申请。

char * arr = (char *)malloc(n*sizeof(char *));(这种字符串处理还是java方便。。)

/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */char** fizzBuzz(int n, int* returnSize) {    char ** arr = (char **)malloc(n*sizeof(char *));    int i;    for(i = 0;i < n;i++)    {        if(((i+1)%15) == 0)        {            arr[i] = (char *)malloc(8*sizeof(char));            arr[i] = "FizzBuzz";        }        else if(((i+1)%3) == 0)           {               arr[i] = (char *)malloc(4*sizeof(char));               arr[i] = "Fizz";           }        else if(((i+1)%5) == 0)           {               arr[i] = (char *)malloc(4*sizeof(char));               arr[i] = "Buzz";           }        else            {                arr[i] = (char *)malloc(sizeof(char));                sprintf(arr[i],"%d",i+1);            }    }    * returnSize = n;    return arr;    //free(arr);}
0 0
原创粉丝点击