C语言循环技巧:位数统计、正序和逆序输出数字处理(上篇)-2.使用取模运算
取模运算和取余运算两个概念有重叠部分但又不完全一致。主要区别在于对负整数进行除法运算时操作不同(取余运算在求商时,向0方向舍入,而取模运算在计算商时,向负无穷方向舍入)。
eg4:计算-7MOD4 (令a=-7,b=4,c为商,r为输出结果)
第一步:求整数商c,如进行求模运算c=-2(向负无穷方向舍入),求余c=-1(向0方向舍入);
第二步:计算模和余数的公式相同,但因c的值不同,求模时r=1,求余时r=-3。
总结:当a与b符号一致时,求模运算和求余运算所得的c的值一致,因此r也相同。当符号不一致时,结果不一样,求模运算结果的符号和b的一致,求余运算结果的符号和a一致。
利用除法取整的特性,我们可以对数字进行以下操作:
(1)数字取低位
方法:用数字(num)对10进行取模运算(即n%10)
eg5: 123%10==3
(2)保留个位
方法:用数字(num)对10进行取模运算,保存在变量x中,接下来继续用num除以10,重复以上两个步骤,直到m%n==0结束(保留个位牵扯到数字位数的变化,因而需要借助除法运算来保留去掉个位后的数字 )。
eg6: 令num=123,求数字123每个位上的数字
第一步: x=num%10-------->x=3
第二步: num=num/10----->num=12
第n步: m%n==0
(由于这一期博客文字叙述内容过多,需要花时间理解,所以第二部分内容将在下一期博客中更新!!!)