,所以我想创建一个程序,它可以找到一些可以通过数字1-20分。我知道,我将不得不使用下面简单的代码的概念:循环,直到在Objective-C达到多个条件
我知道如何循环工作,以及如何创建一个运行,直到满足条件的循环。是否有一个简单的方法是在满足几个条件之前运行一个循环?
,所以我想创建一个程序,它可以找到一些可以通过数字1-20分。我知道,我将不得不使用下面简单的代码的概念:循环,直到在Objective-C达到多个条件
我知道如何循环工作,以及如何创建一个运行,直到满足条件的循环。是否有一个简单的方法是在满足几个条件之前运行一个循环?
while (condition1 && condition2 && condition3...) {}
或
for (int i = 0; i < n && condition1 && condition2...) {}
显然,这些将循环,而条件为真,直到条件满足。它在逻辑简单的改变,虽然得到的结果你想
编辑
寻找可能是喜欢那种循环您选择的安逸例如:在玩
int number = ...;//initialized somewhere, this is what we're checking
BOOL divisible = YES;
for (int i = 1; i <= 20 && divisible; ++i)
{
if ((number % i) != 0)
divisible = NO;//not divisible by i
}
好的谢谢。起初我以为逗号会这样做,但它是&&。谢谢。 – user1518915 2012-07-11 20:04:04
还有'||',明智地使用它们取决于你希望如何评估你的逻辑 – 2012-07-11 20:04:40
好的。最后一件事。对于for循环,是“我
很好的答案,但我认为在本次讨论中提及break
运营商是一件好事。任何时候任何循环都可以使用这个操作符来终止。如果你不知道所有可能超出界限的参数,并且你想有一种打破循环的方式,这可能是你没有明确预期的原因(也许你的资源连接是不再...)
NSError *error = nil;
while(true) {
// run your app
if(error) {
break;
}
}
如果数字是从1到20的所有数字整除那么它是由1到20的LCM整除所以整除的测试是,如果(!(N%232792560)) 。
此外如果m = PQ | n然后p | n,q | n所以明确地测试你只需要检查素数的可分性。即,如果数量不是即使这样也没有必要由4,6,8,10,12,14,16,18或20。这降低了测试的号码是一致的8素数阶乘= 9699690来检查整除
OK,也许在二读时没有明确的,因为我想:展开的测试看起来像(由德,摩根定理)
if(!(n%19 || n%17 || n%16 || n%13 || n%11 || n%9 || n%7 || n%5))
// number is divisible by 1..20
我建议你operators'了解'逻辑的http:/ /en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B – Jack 2012-07-11 20:20:56