生成固定数字长度的随机数?

Ami*_*Dev 4 objective-c arc4random

我正在生成随机数

int randomID = arc4random() % 3000;
Run Code Online (Sandbox Code Playgroud)

但我想生成至少4位数的随机数.像1000,2400,1122

我想知道Objective C的代码.

lan*_*nbo 23

请试试

生成数字:1000~9999

int randomID = arc4random() % 9000 + 1000;
Run Code Online (Sandbox Code Playgroud)

生成数字:1000~2999

int randomID = arc4random() % 2000 + 1000;
Run Code Online (Sandbox Code Playgroud)

  • 如果它想要少于3000和4位数,那么你可以使用int randomID = arc4random()%2000 + 1000; (3认同)

Phi*_*son 8

至少四位数吧?

所以你需要灵活的东西:

-(NSString *)getRandomPINString:(NSInteger)length
{
    NSMutableString *returnString = [NSMutableString stringWithCapacity:length];

    NSString *numbers = @"0123456789";

    // First number cannot be 0
    [returnString appendFormat:@"%C", [numbers characterAtIndex:(arc4random() % ([numbers length]-1))+1]];

    for (int i = 1; i < length; i++)
    {
        [returnString appendFormat:@"%C", [numbers characterAtIndex:arc4random() % [numbers length]]];
    }

    return returnString;
}
Run Code Online (Sandbox Code Playgroud)

并像这样使用它:

NSString *newPINString = [self getRandomPINString:4];
Run Code Online (Sandbox Code Playgroud)