日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【快乐水题】412. Fizz Buzz

發(fā)布時(shí)間:2025/3/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【快乐水题】412. Fizz Buzz 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原題:

力扣鏈接:412. Fizz Buzz

題目簡(jiǎn)述:

給你一個(gè)整數(shù) n ,找出從 1 到 n 各個(gè)整數(shù)的 Fizz Buzz 表示,并用字符串?dāng)?shù)組 answer(下標(biāo)從 1 開(kāi)始)返回結(jié)果,其中:

  • answer[i] == “FizzBuzz” 如果 i 同時(shí)是 3 和 5 的倍數(shù)。
  • answer[i] == “Fizz” 如果 i 是 3 的倍數(shù)。
  • answer[i] == “Buzz” 如果 i 是 5 的倍數(shù)。
  • answer[i] == i 如果上述條件全不滿足。

解題思路

1.難點(diǎn)在動(dòng)態(tài)生成二維字符串?dāng)?shù)組(本題解提供兩種生成方法(連續(xù)內(nèi)存與非連續(xù)內(nèi)存),都可用);
2.*returnSize = n; ///< 這個(gè)比較坑。二維數(shù)組輸出字符串的個(gè)數(shù)n。如寫(xiě)成malloc的大小,就報(bào)錯(cuò)
3.利用sprintf來(lái)把int轉(zhuǎn)char數(shù)組:sprintf(pps8Output[i - 1],"%d", i);
4.其他沒(méi)啥了。。。

C代碼:

/*** Note: The returned array must be malloced, assume caller calls free().*/ char** fizzBuzz(int n, int* returnSize) {int i = 0;*returnSize = n; ///< 這個(gè)比較坑。二維數(shù)組輸出字符串的個(gè)數(shù)n。如寫(xiě)成malloc的大小,就報(bào)錯(cuò)///< 動(dòng)態(tài)開(kāi)辟二維數(shù)組 start///< 法1///< 申請(qǐng)可能非連續(xù)內(nèi)存// char ** pps8Output = malloc(sizeof(char *)*n); ///< 一級(jí)指針// for(i = 0;i < n; i++)// {// pps8Output[i] = malloc(10*sizeof(char)); ///< 二級(jí)指針// }///< 法2///< 申請(qǐng)連續(xù)內(nèi)存char ** pps8Output = malloc(sizeof(char *)*n); ///< 一級(jí)指針pps8Output[0] = malloc(10*n*sizeof(char)); ///< 二級(jí)指針for(i = 1;i < n; i++){///< 一次性動(dòng)態(tài)申請(qǐng)好全部的內(nèi)存,然后計(jì)算每行的開(kāi)始地址,用單個(gè)下標(biāo)訪問(wèn),進(jìn)行賦值pps8Output[i] = pps8Output[0] + i*10; ///< 二級(jí)指針 }///< 動(dòng)態(tài)開(kāi)辟二維數(shù)組 endfor (i = 1; i <= n; i++){if ((i % 3 == 0) && (i % 5 == 0)){strcpy(pps8Output[i - 1], "FizzBuzz");}else if ((i % 3 == 0) && !(i % 5 == 0)){strcpy(pps8Output[i - 1], "Fizz");}else if (!(i % 3 == 0) && (i % 5 == 0)){strcpy(pps8Output[i - 1], "Buzz");}else{sprintf(pps8Output[i - 1],"%d", i);}}// for (i = 0; i < n ; i++)// {// printf("%s\r\n", pps8Output[i]);// }return pps8Output; }

力扣結(jié)果展示:

總結(jié)

以上是生活随笔為你收集整理的【快乐水题】412. Fizz Buzz的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。