C语言中,n%r与nr结果又什么不一样的?

Python011

C语言中,n%r与nr结果又什么不一样的?,第1张

若n与r都是整型变量,C语言中,n%r的结果是n除以r的余数;n/r是n除以r的商的整数部分

例如:

26÷16=1......10

int n=26,r=16

printf("%d/%d=%d %d%%%d=%d\n",n,r,n/r,n,r,n%r)

执行此代码后的输出是:

26/16=1 26%16=10

首先要明白十进制转换成其他进制的方法:

十进制数x不停对y进制进行除法操作,最后再倒取余数。

比方说十进制数35转换为二进制:

结果就是100011.

然后我们看change函数,实际上是递归的方法。

c是x对r求余,再打印c之前,把x/r的值再对r求余......直到x/r=0为止。

比方说还是上面这个例子。

c0=x%r=35%2=1

c1=x/r%r=17%2=1

c2=x/r/r%r=8%2=0

.......

c5=x/r/r/r/r/r%r=1%2=1

到这里之后x的值已经是1了,然后因为1/2=0了,所以不再进行下去了。

然后打印方式是越后面出现的先打印。

还有不懂的请追问哦。