意思很简单,给出一个n,输出1-n的整数,如果整数是3的倍数,输出”Fizz”,如果是5的倍数,输出”Buzz”,如果是15(同时是3和5的倍数)的倍数,输出”FizzBuzz”。
最简单的解法就是3组if-else判断,利用C语言的char **(二级char指针)存储需要返回的字符串数组(第一级为字符串,第二级为数组)。提交代码框中有说明两点:
所以* returnSize = n;貌似没必要,但是如果不写就会返回空数组。
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);}新闻热点
疑难解答