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

薯條旁的主角 wrote:
參考各位大大寫的範例...(恕刪)


剛洗澡時候突然想到一個必殺寫法....
一行perl就解決了

my $num=13;
print "*" x ($_>$num?($num-$_%$num):$_),"\n" for (1...$num*2-1);
ms63 wrote:
那你也得要一個個的試...(恕刪)

我覺得blockquote大的意思是說,
以後要問程式作業的,下標題絕對不要提到什麼『老師出了一個作業brabra...該怎麼寫?』
下一個類似這篇的標題,自然就會拐了一堆programmer進來貼程式碼了。

小弟也是號稱資工系畢業的,大學四年下來居然程式寫不到幾個,白唸了...
Aloha~ 小羊@Honolulu, HI 96814.
真是無聊又沒挑戰性的題目,大家還寫的這麼高興阿
隨便翻一下書,挑個河內塔或是sorting都比這題目難多了.
200個programmer有199個寫不出來? 不知是在哪一國統計的? 受測者真是 programmer 嗎?
越簡單的程式, 越多人不會寫?? 那 " hello world! "這支程式應該沒有人會寫了

little_5 wrote:
真是無聊又沒挑戰性的...(恕刪)


eish, hello world 是什麼東西?

anyway,

我被問過最難的幾個面試問題應該是,

1, 獲得一個亂數 array, 找出中間數值
例 > {1,3,5,7,9,2,4,6,8} 答案會是5
oh, sorting 不會是最佳解!

2, 同樣是亂數 array, 不過裡面的數值都是成對的, 除了特別的一個. 找出特別那個
例 > {1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,8,9} 答案會是 7
出來的 algorithm 會是 O(n)

3, 找出字串中最長的重複字
例 > "yzabcdefghijhlabcdefiuabc" 答案會是 "abcdef"

以上這些其實都是考 algorithm 而已. 所以你用什麼 language 都是 ok 的...
所以, 不給上機驗證的 >"<
雙子貓 wrote:
for(
    LoopCount0=1;
    LoopCount0<=100;
    LoopCount0++
)    {
    if((LoopCount0%3)==0)   {
        if((LoopCount0%5)==0)   {
            Print("FizzBuzz...");
        }else  {
            Print("Fizz...");
        }
    }else  if((LoopCount0%5)==0)   {
        Print("Buzz...");
    }else  {
        Print(LoopCount0);
    }
}
嗯! 這算是最佳最簡的 for + if 判斷式解了.


薯條旁的主角 wrote:
print "*" x ($_>$num?($num-$_%$num):$_),"\n" for (1...$num*2-1);
沒錯! perl 就是這麼強, 因為它內建就支援 print "*" x n 來 print n 個 "*".
little_5 wrote:
那 " hello world! "這支程式應該沒有人會寫了(恕刪)


printt("hello world!");
~~~~~

編譯過不了,真是有夠難寫的程式
1, 獲得一個亂數 array, 找出中間數值
例 > {1,3,5,7,9,2,4,6,8} 答案會是5

用 balanced binary tree?

2, 同樣是亂數 array, 不過裡面的數值都是成對的, 除了特別的一個. 找出特別那個
例 > {1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,8,9} 答案會是 7
出來的 algorithm 會是 O


Set Numbers = array of random integers.

Set i=1.
Set Ans = 0.

For n=1 to end of numbers array do
{
Ans = Ans + ( Numbers[n] * i ).
i = i * -1.
}
Print Ans.

3, 找出字串中最長的重複字
例 > "yzabcdefghijhlabcdefiuabc" 答案會是 "abcdef"
這個比較困難,邊吃早餐邊想﹍
http://www.mike-chen.net http://www.flickr.com/photos/totaleclipse
edgar888 wrote:
printt("hello world!");
~~~~~

編譯過不了,真是有夠難寫的程式

這個好笑
我比較好奇的是, 考algorithm, 會有幾個人可以臨場寫出來? 基本上那IQ要很高呢!
kenl wrote:
3, 找出字串中最長的重複字
例 > "yzabcdefghijhlabcdefiuabc" 答案會是 "abcdef"

看到字串比對直覺就想到 Dynamic Programing

str = (input string)

int matrix[n][n] = {0} ;
int RepeatStrLength = 0 ;
int RepeatStrPos = 0 ;

for( i = 1; i < n; i++)
  for( j = i+1; j < n; j++)
    if( str[ i ] == str[ j ] ){
      matrix[ i ][ j ] = matrix[ i-1 ][ j-1 ] + 1 ;
      if(matrix[ i ][ j ] > RepeatStrLength){
        RepeatStrLength = matrix[ i ][ j ] ;
        RepeatStrPos = i ;
      }
    }

for( i = RepeatStrPos - RepeatStrLength; i < RepeatStrPos; i++)
  print str[ i ] ;
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 12)

今日熱門文章 網友點擊推薦!