#巧用"/"和"%"解决实际
在使用“/”和“%”中,主要存在两个问题 1:区分不清楚;2:在解决问题使不能充分的利用这两个运算符。
-
基本概念:
[1 ] “/” 表示除法;两个整数相除的结果为整数,所以想要得到float类型或double类型,需要进行数值转换或将分子乘以1.0;
e.g:
5/3=1;(5*1.0)/ 3=1.666667;[2 ] "%"表示求余数;%运算符要求运算的运算对象为整数,结果也为整数;要注意负数的求余和正数不一样。
e.g:
8%3=2;
-5%3=-1;
5%-3=1; -
利用这两个运算符:一般用于解决求整数位数,顺序输出,逆序输出,水仙花数,完数问题,在具体问题里这两个运算符的用法:
[1 ] 对于整数n来说,n/10表示n除10,如123/10=12,223/10=22,从结果看到它丢掉了后面的数字,即有:
n/(10的i次方)=丢掉 n 后面的 i 位数,保留前面的数
e.g:
12345/10000=1;
2345/1000=2;
1234/100=12;
[2 ] 对于整数n来说,n%10表示n对10求余,如123%10=3,234%10=4,从结果看到它丢掉了前面的数,保留了最后一位,即有:
n%(10的i次方)=保留后面的i位数,丢掉前面的数
e.g:
12345%10000=2345;
345%100=45;
67%10=7;
- 解决应用问题
[ 1 ] 问题:给一个任意整数,求:
(1)它是几位数;
(2)按逆序输出个位数字,例如123输出321;
(3)分别顺序输出每位数字;
[ 2 ] 解决:
(1)求位数
****思路:
求一个数为几位数,采取丢数字的方法,每次丢掉后面的一位保留前面的,直至到0,所以我们利用除法“/”,设置一个累加器,丢一次加一下,最后累加器的值即表示它为几位数。如下图
****代码:
在visual上编译代码运行如下图
(2)按逆序输出个位数字,例如123输出321;
****思路:
在第一问求位数时,每次都用“/”丢掉最后一位,现在我们需要逆序输出,可以在它丢掉数字前先使用一下,即保留后面的数字,丢掉前面的,所以用运算符“%”,得到最后一个数后,丢掉,再求倒数第二个数输出。如下图
****代码:
在visual上编译代码运行如下图
(3)分别顺序输出每位数字;
****思路:要顺序输出每一位数字,即将前面的数字输出,再舍弃第一位,求得第二位数字再输出,再舍弃,重复这样的工作,直至n=0,但若n的位数不确定,就不能得到第一位,第二位,因为我们得到第一位的办法是用“/” n/(10的i次方)=丢掉 n 后面的 i 位数,保留前面的数,所以先调用第一个函数求出位数,再进行求解。如下图
****代码:
在visual上编译代码运行如下图
- 总结:
相信你现在一定对“/”和“%”的用法了如指掌了吧,在用的时候一定要注意相关事项哦!