我是ios编程的新手。我对GCD计划有疑问。
01 // This program finds the greatest common divisor of two nonnegative integer values
02
03 #import <Foundation/Foundation.h>
04
05 int main (int argc, const char * argv[]) {
06 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
07 unsigned int u, v, temp;
08
09 NSLog(@"Please type in two nonnegative integers.");
10 scanf("%u%u", &u, &v);
11
12 while (v != 0) {
13 temp = u % v;
14 u = v;
15 v = temp;
16 }
17
18 NSLog(@"Their greatest common divisor is %u", u);
19
20 [pool drain];
21 return 0;
22 }
我不明白这一部分:
while(v!=0)
temp = u%v
u =v;
v = temp;
这是什么意思,用英语?
答案 0 :(得分:2)
该部分实际上使用Euclidean algorithm来计算最大公约数。
答案 1 :(得分:1)
%是mod operator。这三行将u
除以v
,并将余数存储在temp中。然后u
获取v
的值,v
获取余数。在v
不为0的情况下重复该过程。
答案 2 :(得分:0)
我看到你正在使用欧几里得算法
如您所见,temp = u%v
%是一个模运算符,它将u和v分开,其余部分存储在temp。然后将值存储在变量v中,最后将temp的值存储在变量v中,整个过程将重复,直到v的值不等于0或不为0.