頭のてっぺんから、いくつかの解決策を考えることができます(たとえば、ランダムな奇数を取得することに焦点を当てています):
int n;
while (n == 0 || n % 2 == 0) {
n = (arc4random() % 100);
}
ええと..そうですか?まったく効率的ではありません..
int n = arc4random() % 100);
if (n % 2 == 0) n += 1;
しかし、奇数でない限り、常に数が増えるのは好きではありません..多分それは問題ではないでしょうか? 別のアプローチは、それをランダム化することです。
int n = arc4random() % 100);
if (n % 2 == 0) {
if (arc4random() % 2 == 0) {
n += 1;
else {
n -= 1;
}
}
しかし、これは私には少し寂しい気がします..だから、この種のことを行うためのより良い方法があるかどうか疑問に思っていますか?