PALMisLIFE 討論區

搜索
鹹魚爸魅力四射舞蹈教室
12
返回列表 發新帖
樓主: matika
打印 上一主題 下一主題

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

[複製鏈接]

210

主題

0

好友

5173

積分

該用戶從未簽到

文章
6777
31#
發表於 2007-10-6 00:20 |只看該作者

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

再這樣下去
會不會連 non-recursive 的漢諾塔經典考題都要出來了...

[洋蔥smile]
回復

使用道具 舉報

326

主題

14

好友

5298

積分

該用戶從未簽到

文章
3982
32#
發表於 2007-10-6 00:27 |只看該作者

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

因為迴圈都是遞增或遞減, 所以非固定增加/減少的數值,
就要改用 "數線左右邊絕對值均遞增" 的觀念來做.
而且這題的重點在於控制 "空白字元" 的數量, 而不是控制 "*" 號.

把握住這兩點, 這個形狀就很好解了.

不過要一個迴圈完成, 就要用字串長度控制來做, 算偷吃步吧.
其實本質還是要 nested loop, 才不會移植不同程式語言寫時,
會因為不同語言的字串控制 function 不同而造成移植困難.
已有 1 人評分分享 收起 理由
loren + 10 講到重點,不可以鑽牛角尖,小心陷阱!

總評分: 分享 + 10   查看全部評分

回復

使用道具 舉報

210

主題

0

好友

5173

積分

該用戶從未簽到

文章
6777
33#
發表於 2007-10-6 00:34 |只看該作者

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

原文由 byebye 於 2007-10-5 21:53 發表
看到這個討論, 小弟想到以前老師出以下題目. 用一個迴圈完成.  大夥試試看~~  
     *
   ***
  *****
*******
  *****
   ***
     *

如果考題的限制只有『一個迴圈』
我很想知道老師看到以下這樣寫會不會給分

  1. for ( int i=1; i<=7; i++ ) {
  2.   if ( i == 1 ) printf("   *   ");
  3.   if ( i == 2 ) printf("  ***  ");
  4.   if ( i == 3 ) printf(" ***** ");
  5.   if ( i == 4 ) printf("*******");
  6.   if ( i == 5 ) printf(" ***** ");
  7.   if ( i == 6 ) printf("  ***  ");
  8.   if ( i == 7 ) printf("   *   ");
  9. }
複製代碼

[洋蔥smile]
已有 4 人評分分享 收起 理由
fish0225 + 5 好,連我這個不會寫程式的人都看的懂
大胃陳 + 5 能抓老鼠的就是好貓!
小賤健 + 5 這招真是太妙了,屌(Y)
Jam~ + 5 我給分!目的達到就好!

總評分: 分享 + 20   查看全部評分

回復

使用道具 舉報

62

主題

0

好友

5967

積分

  • TA的每日心情

    2019-1-14 22:03
  • 簽到天數: 2481 天

    連續簽到: 1 天

    [LV.Master]伴壇終老

    文章
    1543
    34#
    發表於 2007-10-6 00:42 |只看該作者

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

    看了這一連串
    我覺得好像自己已經到了火星一般
    啥東西阿~~~~~~~~~~~~
    回復

    使用道具 舉報

    164

    主題

    0

    好友

    2177

    積分

    該用戶從未簽到

    文章
    2274
    35#
    發表於 2007-10-6 00:54 |只看該作者

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

    原文由 拍郎 於 2007-10-6 00:34 發表

    如果考題的限制只有『一個迴圈』
    我很想知道老師看到以下這樣寫會不會給分
    for ( int i=1; i<=7; i++ ) {
      if ( i == 1 ) printf("   *   ");
      if ( i == 2 ) printf("  ***  ");
      if ( i == 3 ) printf(" ***** ");
      if ( i == 4 ) printf("*******");
      if ( i == 5 ) printf(" ***** ");
      if ( i == 6 ) printf("  ***  ");
      if ( i == 7 ) printf("   *   ");
    }


    for ( int i=1; i<=7; i++ ) {
      switch (i) {
         case 1:
         case 7:
             out.println("   *   ");
             break;
         case 2:
         case 6:
           out.println("  ***  ");
           break;
         case 3:
         case 5:
            out.println(" ***** ");
             break;
         case 4:
             out.println("*******");
             break;
         }  
    }


    這樣玩也可以
    回復

    使用道具 舉報

    20

    主題

    0

    好友

    430

    積分

    該用戶從未簽到

    文章
    471
    36#
    發表於 2007-10-6 00:58 |只看該作者

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

    原文由 拍郎 於 2007-10-6 00:20 發表
    再這樣下去
    會不會連 non-recursive 的漢諾塔經典考題都要出來了...

    [洋蔥smile]

    有~~~老師~~~這個我會!
    在高二時參加軟體競賽我負責解這一題的,花了我快四小時才寫出來。
    雖然已經快二十年了,但是給我一天回憶一下應該還可以吧,哈哈。
    回復

    使用道具 舉報

    181

    主題

    5

    好友

    2509

    積分

    超敗家的白爛長笛手

  • TA的每日心情
    郁悶
    2013-4-6 01:41
  • 簽到天數: 4 天

    連續簽到: 1 天

    [LV.2]偶爾看看I

    文章
    2201
    37#
    發表於 2007-10-6 01:32 |只看該作者

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

    如果有特別去精修資料結構演算法,會遇到更多更令人吐血的簡單問題XD
    例如超大數字四則運算,1923798172893129389798789 x 219871927371927398798 = ?

    Tip
    use 1-array, please!

    [ 本文最後由 小賤健 於 2007-10-6 01:33 編輯 ]
    回復

    使用道具 舉報

    3

    主題

    0

    好友

    26

    積分

    該用戶從未簽到

    文章
    27
    38#
    發表於 2007-10-6 10:06 |只看該作者

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

    昨晚去翻書, 看之前寫的答案是啥, 但不知道跑哪去了~ 且小弟也不在寫程式,
    網路上找了一下, 當時上課的 Forth 課本電子檔還在,
    網頁: 中華民國符式語言協會 http://www.figtaiwan.org/   
    課本: FORTH的禪思 http://www.figtaiwan.org/download/Doc/TheZenOfForth.pdf
    題目在第 349 頁, 但沒解答.  印象中是用一個迴圈搞定的..... 應該是....  
    如果一個迴圈寫不出來, 可能是小弟記錯了~~  
    回復

    使用道具 舉報

    415

    主題

    54

    好友

    5121

    積分

  • TA的每日心情
    開心
    2011-4-9 00:44
  • 簽到天數: 2 天

    連續簽到: 0 天

    [LV.1]初來乍到

    文章
    5080
    39#
    發表於 2007-10-6 14:44 |只看該作者

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

    原文由 camel 於 2007-10-5 17:36 發表
    看到這麼多程式設計師出現..

    想到自己只學過BASIC...[洋蔥cry]
    而且已經早就都忘光光了...[洋蔥em22]

    握手~!

    我的時代是 Apple II Basic 和 6502 組合語言...
    回復

    使用道具 舉報

    1234

    主題

    10

    好友

    1萬

    積分

    該用戶從未簽到

    文章
    23084
    40#
    發表於 2007-10-6 16:21 |只看該作者

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

    CALL-151[洋蔥em22]
    回復

    使用道具 舉報

    125

    主題

    2

    好友

    482

    積分

    該用戶從未簽到

    文章
    603
    41#
    發表於 2007-10-6 16:44 |只看該作者

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

    [這是程式的開始]
    啊就把他給印出來啦(1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz)
    [這是程式的結束]

    沒事沒事,程式設計師請繼續,其他的人跟我到旁邊泡茶.......

    班機被取消呆在曼谷放颱風假的人留
    已有 1 人評分分享 收起 理由
    jouston + 1 本日最有爆點程式... XD

    總評分: 分享 + 1   查看全部評分

    回復

    使用道具 舉報

    270

    主題

    0

    好友

    3673

    積分

    大隱隱於市

    該用戶從未簽到

    文章
    7360
    42#
    發表於 2007-10-6 16:45 |只看該作者

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

    這一篇沒有程式設計區實在很可惜啦~
    亞太 0980/050/589
    中華 0989/907/695
    回復

    使用道具 舉報

    326

    主題

    14

    好友

    5298

    積分

    該用戶從未簽到

    文章
    3982
    43#
    發表於 2007-10-6 18:30 |只看該作者

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

    原文由 byebye 於 2007-10-6 10:06 發表
    昨晚去翻書, 看之前寫的答案是啥, 但不知道跑哪去了~ 且小弟也不在寫程式,
    網路上找了一下, 當時上課的 Forth 課本電子檔還在,
    網頁: 中華民國符式語言協會 http://www.figtaiwan.org/   
    課本: FORTH的禪 ...


    我想, 你所謂的 "一個迴圈" 應是指迴圈控制成:

    3空白1星號
    2空白3星號
    1空白5星號
    0空白7星號
    1空白5星號
    2空白3星號
    3空白1星號

    這容易達成, 迴圈不必從正數開始, 只要控制成 -3 -2 -1 0 1 2 3 然後取絕對值,
    就成了 3 2 1 0 1 2 3, 正好是空白的數量;
    後面那個 1 3 5 7 5 3 1 就加加減減也很容易得到.

    問題是得到上面那串數字後, 總要印出來吧.
    有的語言可以直接 字串(n) 就能印出 n 個空白或星號或其它字元,
    那沒這類 function 的語言怎麼辦?
    還是要一個 loop 來執行印 空白 和印 星號 的動作.
    回復

    使用道具 舉報

    3

    主題

    0

    好友

    26

    積分

    該用戶從未簽到

    文章
    27
    44#
    發表於 2007-10-6 19:56 |只看該作者

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

    是的~! 小弟正是這個意思~~~
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    25

    積分

    該用戶從未簽到

    文章
    30
    45#
    發表於 2007-10-7 00:14 |只看該作者

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

    asp
    <%
    for i = 1 to 100
        if i / 3 - int(i / 3) = 0 and i / 5 - int(i / 5) = 0 then
            response.write "FizzBuzz"
        elseif i / 3 - int(i / 3) = 0 and i / 5 - int(i / 5) <> 0 then
            response.write "Fizz"
        elseif i / 3 - int(i / 3) <> 0 and i / 5 - int(i / 5) = 0 then
            response.write "Buzz"
        elseif i / 3 - int(i / 3) <> 0 and i / 5 - int(i / 5) <> 0 then
            response.write i
        end if
        response.write "<br>"
    next
    %>
    回復

    使用道具 舉報

    144

    主題

    18

    好友

    3807

    積分

    該用戶從未簽到

    文章
    1778
    46#
    發表於 2007-10-7 02:21 |只看該作者

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

    上面都是用c programing language?
    現在正在學...看的一知半解@@
    回復

    使用道具 舉報

    4

    主題

    0

    好友

    406

    積分

    該用戶從未簽到

    文章
    103
    47#
    發表於 2007-10-7 17:22 |只看該作者

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

    原文由 camel 於 2007-10-5 17:36 發表
    看到這麼多程式設計師出現..

    想到自己只學過BASIC...
    而且已經早就都忘光光了...

      咱也只不過學到QuickBASIC而已.
      我也來玩一下看看,說不定可以喚醒你一些指令的記憶.

    QuickBASIC:

    FOR i = 1 TO 100
    IF i MOD (3 * 5) = 0 THEN
       PRINT "FizzBuzz",
    ELSEIF i MOD 3 = 0 THEN
       PRINT "Fizz",
    ELSEIF i MOD 5 = 0 THEN
       PRINT "Buzz",
    ELSE
       PRINT i,
    END IF
    NEXT

    [ 本文最後由 nessie 於 2007-10-7 20:24 編輯 ]
    已有 2 人評分分享 收起 理由
    camel + 5 我的媽呀~快把記憶櫃再加三道鎖!XD...
    whale_pp + 3 有複習到!這是我國中學的呀(吐煙)..

    總評分: 分享 + 8   查看全部評分

    回復

    使用道具 舉報

    11

    主題

    1

    好友

    485

    積分

    該用戶從未簽到

    文章
    537
    48#
    發表於 2007-10-8 12:00 |只看該作者

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

    我... 我寫不出來......
    If something is ugly or hard, it is wrong

    我的Blog: http://grave.dyndns.org/blog/zombie/
    回復

    使用道具 舉報

    1

    主題

    0

    好友

    24

    積分

    該用戶從未簽到

    文章
    44
    49#
    發表於 2007-10-9 02:24 |只看該作者

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

    看起來好像還滿有趣的,不過我也不會寫[洋蔥em22] ,只好窩在旁邊泡茶....
    改天還是去看點書增長知識好了[洋蔥shy]
    回復

    使用道具 舉報

    50#
    無效樓層,該帖已經被刪除
    51#
    無效樓層,該帖已經被刪除

    326

    主題

    14

    好友

    5298

    積分

    該用戶從未簽到

    文章
    3982
    52#
    發表於 2008-1-10 01:18 |只看該作者

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

    這篇又被挖出來了.
    我也來寫一個玩的, 才不會都只是空談. 我用 QBASIC

    FOR N = 1 TO 100
            A$ = ""
            IF (N MOD 3) = 0 THEN A$ = "Fizz"
            IF (N MOD 5) = 0 THEN A$ = A$ + "Buzz"
            IF A$ = "" THEN A$ = STR$(N)
            PRINT A$,
    NEXT N
    回復

    使用道具 舉報

    40

    主題

    0

    好友

    808

    積分

    該用戶從未簽到

    文章
    1080
    53#
    發表於 2008-1-10 07:52 |只看該作者

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

    原文由 IF 於 2007-10-5 16:31 發表
    剛 search 了一下, 還蠻多人這樣寫的.
    你覺得是剽竊是嗎?
    刪掉就是了.
    何必小人之心?


    音樂著作權似乎是以8個小節完全相同來作為是否抄襲的判斷依據,
    那程式碼呢? 怎麼判斷是否為抄襲??
    Palm 就是好玩 !
    Mac其實也好玩!!
    最近都在玩170
    回復

    使用道具 舉報

    160

    主題

    2

    好友

    1864

    積分

    xdavid

  • TA的每日心情
    郁悶
    2011-4-18 16:45
  • 簽到天數: 1 天

    連續簽到: 1 天

    [LV.1]初來乍到

    文章
    2117
    54#
    發表於 2008-1-10 10:46 |只看該作者

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

    不會寫不出來啦, 剛用Word語言或Notepad語言, 都一分鐘答案就出來了...
    回復

    使用道具 舉報

    72

    主題

    10

    好友

    824

    積分

    該用戶從未簽到

    文章
    833
    55#
    發表於 2008-1-10 11:33 |只看該作者

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

    原文由 lyr 於 2007-10-5 14:59 發表
    哇,這篇看起來就像各種語言的火力展示嘛~
    再寫下去,也許連 pascal 或是 shell script 都出來了,
    大家加油!  


    在下只會寫 bash 的 shell script... 好累,終於寫出來:

    1. #!/bin/bash
    2. export i=1
    3. for((i=1;i<=100;i++))
    4. do
    5.   if [ ` expr \( $i % 3 \) \< 1 ` -eq 1 ] && [ ` expr \( $i % 5 \) \< 1 ` -eq 1 ];then
    6.     echo fizzbuzz
    7.   elif [ ` expr \( $i % 5 \) \< 1 ` -eq 1 ];then
    8.     echo buzz
    9.   elif [ ` expr \( $i % 3 \) \< 1 ` -eq 1 ];then
    10.     echo fizz
    11.   else
    12.     echo $i
    13.   fi
    14. done

    複製代碼

    [ 本文最後由 jouston 於 2008-1-10 11:43 編輯 ]
    回復

    使用道具 舉報

    1234

    主題

    10

    好友

    1萬

    積分

    該用戶從未簽到

    文章
    23084
    56#
    發表於 2008-1-10 11:33 |只看該作者

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

    原文由 kennyliu 於 1/9/2008 08:34 發表
    事情簡單化,就是資深工程師的價值所在。

    帳本複雜化,就是資深會計師的價值所在。
    [1996] 神寶 Palmax PD-95T [2000] Palm IIIx [2001] SONY S300, HandEra330 [2002] Diamond Mako, CASIO G-FORT, JVC MP-C102, SONY SL10, SHARP SL-5500 [2003] SHARP SL-C700, SONY NZ90/NX60, NEC Sigmarion III, SONY NX73V/U [2004] SONY NX73V/E, SHARP SL-6000L, Handspring treo 600 [2005] SE P900i, Tapwave Zodiac 2 [2006] Garmin iQue 3600, Palm Treo 650/680 [2007] Nokia 9300i/E61 [2008] Nokia E70/E90 [2010]
    回復

    使用道具 舉報

    107

    主題

    9

    好友

    2163

    積分

    該用戶從未簽到

    文章
    1684
    57#
    發表於 2008-1-10 11:34 |只看該作者

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

    原文由 ShotLiang 於 2008-1-10 07:52 AM 發表


    音樂著作權似乎是以8個小節完全相同來作為是否抄襲的判斷依據,
    那程式碼呢? 怎麼判斷是否為抄襲??


    喂喂.. 我是被懷疑的人耶.
    你問我, 我問誰?

    這個問題你應該要問 shaoyen, 是這個傢伙說我人腦偷吃步的.

    原來 shaoyen 他的寫法一定是獨創的, 完全跟別人不同啊..
    他比較厲害, 我沒辦法啦.
    以下為拒絕交易名單:qoq357, ylc, xpmoney, yunglieng, s0341969, safari
    回復

    使用道具 舉報

    40

    主題

    0

    好友

    808

    積分

    該用戶從未簽到

    文章
    1080
    58#
    發表於 2008-1-10 18:28 |只看該作者

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

    原文由 IF 於 2008-1-10 11:34 發表

    喂喂.. 我是被懷疑的人耶.
    你問我, 我問誰?......


    看來是由法官認定,
    依著作權法內文沒有定義抄襲的範圍為何,
    [http://www.cca.gov.tw/law/html/7-1.html]
    只提及抄襲或更改電腦程式只限更改人個人使用
    Palm 就是好玩 !
    Mac其實也好玩!!
    最近都在玩170
    回復

    使用道具 舉報

    您需要登錄後才可以回帖 登錄 | 免費註冊

    與站長聯繫| PALMisLIFE 掌上生活      下載:更快、更棒、更好玩

    GMT+8, 2024-9-27 06:50 , Processed in 0.074989 second(s), 32 queries , Gzip On.

    Powered by Discuz!

    © 2001-2012 Comsenz Inc. style by eisdl

    回頂部