【发布时间】:2017-11-06 05:45:05
【问题描述】:
我想计算数字前有多少个零(0)。因为我需要保存数字之前存在的那些数字。
考试:- 假设我有一个数字 0000102。所以我想计算数字开始前有多少个零 (0)。在这次考试中,我们看到这里有 4 个零 (0)。可以这样计算吗?
【问题讨论】:
-
你是怎么得到这个号码的?
-
来自文本字段。所以数字总是动态的。
标签: objective-c math
我想计算数字前有多少个零(0)。因为我需要保存数字之前存在的那些数字。
考试:- 假设我有一个数字 0000102。所以我想计算数字开始前有多少个零 (0)。在这次考试中,我们看到这里有 4 个零 (0)。可以这样计算吗?
【问题讨论】:
标签: objective-c math
for (i=0;i<string.length;i++)
{
if ([[string characterAtIndex:i] intValue] <= 9 || [[string characterAtIndex:i] intValue] > 0 )
{
i++;
}
else
{
numerOfZeros++;
}
}
【讨论】:
int count = 0;
NSString *strr = @"0000102";
unichar findC;
for (int i = 0; i<strr.length; i++)
{
findC = [strr characterAtIndex:i];
if (findC == '0')
{
count++;
}
else
break;
}
NSLog(@"%d",count);
【讨论】:
单列的递归方法:
@implementation NSString (category)
- (NSUInteger)zeroPrefixCount
{
return [string hasPrefix:@"0"] ? 1 + [[string substringFromIndex:1] zeroPrefixCount] : 0;
}
@end
就性能而言,这不是最佳解决方案,但它是您第一天编程课程的典型情况。
// x will be 4
NSUInteger x = [@"0000102" zeroPrefixCount];
【讨论】:
我建议您将此类数字保存为 String 本身,无需进一步评估有多少个零,而是在需要时进行字符串比较。
如果你真的想在你的数字中计算零,那么你可以考虑将它转换为字符串并使用 NSRange 和 NSString 辅助方法来获得你想要的。类似情况在这里回答。
【讨论】: