新浪博客

整除与取余

2021-09-10 22:12阅读:
一、整除 / 在计算机中整除的运算是运算结果只保留商。
例如15/4的值是3 14/2的值是7 22/32的值是____________?
二、取余%
取余运算也称为“模运算”。
15/4可以表示为15-(15/4)*4=3
取余运算可以表示为a%b=a-(a/b)*b.
x%2表示x除以2的余数,余数可能的取值为1或0,余数为0表示x可以被2整除,即x为偶数,余数为1表示x除以2余1,即x为奇数。同样,x%5可能的取值为0,1,2,3,4.由此,可以推断x%y的可能取值有y种结果,即0,1,2,3……y-1,换一个方式理解x%y,通过模y的取值,将x可能的取值分成了y类,即模余数为0的一类,模y余数为1的一类……模y余数为y-1的一类……
通过模2的结果为1或0,判断该数的奇偶性,;通过模y的结果是否为零,判断该数是否能被y整除。


实践练习:反向输出一个三位数。(在openj 提交答案)


拓展练习:输入一个四位数,将这个数各位数字倒序合成一个新数,输出原数字和新数字的差。例如输入4321,输出3087.


三、两个数的交换
前面学习中我们已经实现了两个数的交换——复习
借助第三个变量temp(临时变量-第三个容器) 当然和实际生活中老师举例的“雪碧”“可乐”互换还是有一定区别的,区别在在哪里?你知道吗?
练习:三位数转化。
问题描述:输
入一个三位数,交换百位和各位上的数字,并输出新的三位数。输入数据保证个位上的数字不为0.
输入格式:一行一个三位数。
输出格式:一行一个新的三位数。
输入样例:403
输出样例:304
(方法不唯一)


四、格式化输入/输出


遇到的保留小数位数的问题,在题目中涉及小数时,往往要求保留小数点后面2位、4位等,cout输出语句无法满足,这时需要需要格式化的输入、输出语句。
格式化输出函数:
printf(“格式控制字符串”,输出列表)


格式控制字符串用于指定输出格式,如,语句“int a=3;printf('ans=%d',a);' 运行结果为ans=3. printf语句中%d称为格式控制符,决定了最后输出的数据类型和格式。常用的数据类型对应的格式控制符:int类型为%d, long long 类型为%lld ,float类型为%f , double类型为”%lf'
输出列表中数据的输出格式为:
%[宽度][.精度][数据类型控制符]
[宽度] 可根据题目要求为该数据提前占位,通常成为场宽,如果省略不写,默认为数据实际宽度。
[.精度] 表示涉及浮点数时,小数点后面保留的位数,例如a(float 类型),输出语句printf('%.3f',a) 表示将变量a输出时保留小数点后面3位。


格式化输入函数:
scanf('格式控制字符串',变量地址列表);


变量地址表示在变量前面加取地址符&,涉及多个变量时,用逗号隔开,而格式控制按照变量的顺序匹配对应的数据类型控制符,例如,在程序中设置三个变量,int类型变量a,double类型变量b,long long 类型变量c,则输入语句是 scanf('%d%lf%lld',&a,&b,&c);


需要强调,使用scanf语句和printf语句时,要添加头文件#include 如果使用万能头文件#include,则无需添加。
练习
与圆相关的计算(Open judge 1.3.9)


拓展练习:


计算多项式的值(Open judge 1.3.7)
计算三角形面积(Open judge 1.3.17)




课后作业


1、带余除法(Open judge 1.3.4)
2、计算线段的长度(Open judge 1.3.16
3、甲流疫情死亡率(Open judge 1.3.6)
4、温度表达转换(Open judge 1.3.8)
5、计算球的体积(Open judge 1.3.12)


我的更多文章

下载客户端阅读体验更佳

APP专享