加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

整除与取余

(2021-09-10 22:12:38)
分类: 信息学
一、整除 /
在计算机中整除的运算是运算结果只保留商。
例如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)


0

阅读 收藏 喜欢 打印举报/Report
后一篇:分支结构
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有