【问题标题】:Write function in C which count number of given integer digits, in 2 lines [closed]用C编写函数,计算给定整数位数的数量,2行[关闭]
【发布时间】:2017-03-22 12:45:20
【问题描述】:

对更好的解决方案有什么建议吗?

在 C 中:

int countDigits(int v) {
    for(int i=v, digits =1 ; i != 0; i = i/10,v = digits++);
    return v;
}

【问题讨论】:

  • 你的代码有什么问题?
  • 我不能使用函数 arg。但是这个解决方案使用变量 v...
  • 我不能使用函数 arg。为什么??
  • 如何在不使用函数参数的情况下编写一个函数来计算数字?
  • 这个v = digits++ 也不像你认为的那样做

标签: c


【解决方案1】:

如果不允许引入任何变量,递归可能是一种选择:

int countDigits(int v) {
    return (v >= 10 || v <= -10 ? 1+countDigits(v/10) : 1);
}

注意额外的条件,以便该函数也可以正确处理负数。

【讨论】:

  • 我建议return (v &gt; 9 ? 1+countDigits(v/10) : 1); 以便在通过0 时给出正确的结果。
  • @Weather Vane:这也是我的第一次拍摄,但它不适用于负值。修改了代码;现在应该适用于0 以及负数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-27
  • 1970-01-01
  • 2013-01-01
  • 2015-07-12
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
相关资源
最近更新 更多