unsigned int gcd(unsigned int a,unsigned int b){
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 16:43:02
unsigned int gcd(unsigned int a,unsigned int b){
while(b^=a^=b^=a%=b);
return a;
}
while(b^=a^=b^=a%=b);
return a;
}
很高兴和您分享学习中的快乐!
这个while条件中.
一、首先我们要理解,^= 以及 %=
这是两个赋值运算符
分别是 ^= 按位异或赋值.例如a^=b意味着将a和b按二进制位逐位进行异或运算后的结果赋值给a.
%= 求模赋值.例如a%=b意味着将a除以b的余数赋值给a.
二、我们要知道运算符的运算顺序
由于赋值运算符都是从右至左的.
所以(b^=a^=b^=a%=b)就应该是
1、进行a%=b运算
2、进行b^=(1中结果)运算
3、进行a^=(2中结果)运算
4、进行b^=(3中结果)运算
最后得到的值若为0,则while循环停止.
希望我的回答能帮助您.
再问: ^ 我居然以为是次方
这个while条件中.
一、首先我们要理解,^= 以及 %=
这是两个赋值运算符
分别是 ^= 按位异或赋值.例如a^=b意味着将a和b按二进制位逐位进行异或运算后的结果赋值给a.
%= 求模赋值.例如a%=b意味着将a除以b的余数赋值给a.
二、我们要知道运算符的运算顺序
由于赋值运算符都是从右至左的.
所以(b^=a^=b^=a%=b)就应该是
1、进行a%=b运算
2、进行b^=(1中结果)运算
3、进行a^=(2中结果)运算
4、进行b^=(3中结果)运算
最后得到的值若为0,则while循环停止.
希望我的回答能帮助您.
再问: ^ 我居然以为是次方
unsigned int gcd(unsigned int a,unsigned int b){
希望给出注释~unsigned short GetHashValue(unsigned int *grid){unsig
int 9和unsigned int 65535 转变成char,unsigned int,float,long int
#define P_SystemClock (volatile unsigned int *)0x7013
unsigned char a[4] = {0,0,0,1};int b = *((int*)a); 这样执行完毕后,b
如何将float型变量a=83.55赋给unsigned int 型变量b?
#include sbit a=P1^0; sbit b=P3^2; unsigned int n; void main
main( ) {unsigned int a=3,b=10; printf("%d/n",a1); }
C语言size_t和unsigned int 有什么区别
语句 #define P_IOA_Data (volatile unsigned int *)0x7000
编写具有如下原型的函数:int f(unsigned long x,int n,int& Lxn);
#include main() {unsigned int a=65535; printf("a=%d\n",a); }