神奇的一行。
while(a%=b^=a^=b^=a);
b^=a^=b^=a即交換a和b的值。
等價於:b^=a; a^=b; b^=a;
最後a和b的最大公因數爲b。
附部分代碼:
- int a , b ;
- while(~scanf("%d%d",&a,&b))
- {
- while(a%=b^=a^=b^=a);
- printf("%d\n",b);
- }
神奇的一行。
while(a%=b^=a^=b^=a);
b^=a^=b^=a即交換a和b的值。
等價於:b^=a; a^=b; b^=a;
最後a和b的最大公因數爲b。
附部分代碼:
- int a , b ;
- while(~scanf("%d%d",&a,&b))
- {
- while(a%=b^=a^=b^=a);
- printf("%d\n",b);
- }