Write a program thatoutputs the string representation of numbers from 1 to n.
But for multiples of threeit should output “Fizz” instead of the number and for the multiples of fiveoutput “Buzz”. For numbers which are multiples of both three and five output“FizzBuzz”.
Example:
n = 15,
Return:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
編寫一個程序,輸出數字的字符串表示從1到n。
但是對於三倍的倍數,它應該輸出“Fizz”而不是數字和五個輸出“Buzz”的倍數。對於三號和五號輸出“FizzBuzz”的倍數的數字。
主要是這個要求返回字符串的數組,題其實比較簡單,基本思路是先申請指向字符串數組的指針,然後申請字符串的指針,代碼如下:
/**
* Return an array of size*returnSize.
* Note: The returnedarray must be malloced, assume caller calls free().
*/
char** fizzBuzz(int n, int*returnSize) {
char **p;
int i;
p=(char**)malloc(n*sizeof(char *));
for(i=0;i<n;i++)
p[i]=(char *)malloc(10*sizeof(char));
for(i=1;i<n+1;i++)
{
if(i%15==0)
*(p+i-1)="FizzBuzz";
else if(i%5==0)
*(p+i-1)="Buzz";
else if(i%3==0)
*(p+i-1)="Fizz";
else
sprintf(*(p+i-1), "%d", i);
}
* returnSize = n;
return p;
}