• 12

[有趣]越簡單的程式, 越多人不會寫??

dreaming1943 wrote:
請問為什麼 算15的...(恕刪)

15的倍數必被3 or 5整除
話說這篇真的很久了耶
怎麼鞭上來的啊
洗積分洗到被砍光了吧 哈
直接想到的,沒上機測...
main()
{
for (int i=1,i<=100;i++) printf(i?i%5?i%3?"%i\n":"Fizz\n":"Buzz\n":"FizzBuzz\n",i);
return 0;
}
以上是拼最短寫法

下面是教小朋友的寫法
main()
{
for (int i=1,i<=100;i++)
{
if (i%3==0) printf "Fizz";
if (i%5==0) printf "Buzz";
if (i%3 || i) printf "i";
printf ("\n");
}
return 0;
}
有人說不要判斷%15的狀況,但我認為這樣是寫不出符合原提義的答案吧
#include <stdio.h>
#include <stdlib.h>
main()
{
int n;
for(n=1;n<=100;n++)
//scanf("%d",&n);
if(n%3==0&n%5==0)
printf("%d=FizzBuzz\n",n);
else if(n%3==0)
printf("%d=Fizz\n",n);
else if(n%5==0)
printf("%d=Buzz\n",n);
system("pause");
}

我是這樣寫,應該沒錯吧,用筆寫的話可能會一時寫不出來@@
luckyivan wrote:
FOR I=1 TO...(恕刪)

還是出現了前面討論的問題
您可以思考如果只能整除3卻不能整除5, 對於您的邏輯會有啥結果
這麼久了,居然還有人回...

看到沒有 python,貢獻一下:
>>> def fizzBuzz( n ):
... if (float( n )%3==0.0) and (float( n )%5==0.0):
... return 'FizzBuzz'
... if float( n )%5==0.0:
... return 'Buzz'
... if float( n )%3==0.0:
... return 'Fizz'
... return str( n )

... for i in range(101): print('%s ,' %fizzBuzz( i ))

這個如果沒有實機測,用python 錯的機率很大,主要在型別轉換,其他應該很單純。
可以用三元運算子嗎?~

in java


for(int i=1;i<=100; i++)
System.out.println(((i%3!=0)&&(i%5!=0)?i:"") + ((i%3==0)?"Fizz":"") + ((i%5==0)?"Buzz":"") );
印星星的我想可以用 printf(".*s",i,s)來印出來
程式碼大概像下面

char *star = "**********";
int i = 0;
for(i=0;i<10;i++)
{
printf("%.*s\n",i+1,star);
}


蠻簡單的,六分鐘搞定,

int main()
{
int i;
for(i=1;i<=100;i++)
{
if(i==0)printf("FizzBuzz\n");
else if(i%5==0)printf("Buzz\n");
else if(i%3==0)printf("Fizz\n");
else printf("%d\n",i);
}
system("pause");
return 0;
}
java


public static void main(String[] args) {

for(int i=1;i<=100;i++){
if(i%3==0||i%5==0){
if(i%3==0){
System.out.print("Fizz");
}
if(i%5==0){
System.out.print("Buzz");
}
System.out.println();
}else{
System.out.println( i );
}
}
}

我想的是這樣!!參考看看囉!
@@
這不是有幾乎是正解的答案了嗎@@
怎麼還硬是多出不少多判斷一次的答案出現
  • 12
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 12)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?