“火柴棍式”程序员面试题打破惯性思维

记下这一题是因为更加认识到打破“惯性思维”解决问题的必要性和重要性。引以为戒,以后解决问题时,要多换个角度思考。

摘自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--)
 

原文地址:https://www.cnblogs.com/taoxu0903/p/1997050.html