“火柴棍式”程序员面试题--打破惯性思维
记下这一题是因为更加认识到打破“惯性思维”解决问题的必要性和重要性。引以为戒,以后解决问题时,要多换个角度思考。
摘自coolshell
下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下面的代码修改正确,不过,你只能增加或是修改其中的一个字符,请你给出三种答案。
1 2 3 4 5 | int n = 20; for ( int i = 0; i < n; i--){ printf ( "-" ); } |
下面是正确答案——
1 2 3 4 5 6 7 8 | //第一种解法:在for循环中给 i 加一个负号 for ( int i = 0; -i < n; i--) //第二种解法:在for循环中把 i-- 变成 n-- for ( int i = 0; i < n; n--) //第三种解法:把for循环中的 < 变成 + for ( int i = 0; i + n; i--) |