为了账号安全,请及时绑定邮箱和手机立即绑定

百位十位个位是怎么定义的?

为什么?百位是num%100(这个得出来不是1吗)   十位是(num%100)/10(这个得出来不是0吗)    个位是num%10(这个得出来不也是0吗)    谁能解释一下到底怎么定义这个百十个位的?感谢!

正在回答

2 回答

首先咱了解一下模运算(%),意思是取余,10%4=2;(理解10除以4,余数是2),然后int类型会将一个数字强制转换成整数,如(int)(1.2)=1,(int)(8.9)=8,也就是直接砍掉小数部分,保留整数部分。

百位

那么题中要求定位到百位,那么也就是给定任意一个三位数(已给定num是整型int,只保存整数),那么任意一个三位数除以100,得到的数就是百位了(举例288/100=2.88,取整型后保存为2,以此类推,百位数就可以定位了)

十位

然后十位,这就用到模运算了,给定一个整型的三位数,首先要去掉百位,如三位数是789,那么789%100,根据模运算,结果就是89,好了,余数出来了已经排除掉了百位,那就好办,同取百位一样,89/10=8.9,由于num是整型,那么保存后8.9也就变成了8;

个位

再说个位,就更好办了。有了上边百位十位的算法,给定一个三位数,各位就直接对10进行模运算就行了,因为百位和十位都能整除10,剩下的余数就是个位了。

如此解说,可理解?

0 回复 有任何疑惑可以回复我~


首先:所谓“水仙花数”是指一个三位数,所以要拿到最小的三位数100及最大的三位数  

int类型不四舍五入,只保留整数部分。前面的课程有提到。

所以num=100;num<1000;num++      这样就拿到了我们想要范围所有的三位数

百位数直接除以100得到的数不会四舍五入,直接保存整数部分,百位数拿到。

十位数同理,但是要先拿到这个十位数 除去百位数就是我们要的数  用%取余  拿到十位数后同理只不过是除以10,十位数拿到。

个位数,除去百位、十位数就是个位数,num为三位数那么百位、十位是可以整除10的剩下的余数就是我们要的个位数。  

假设num = 371

百位数:num/100=3.71   那么百位数为3(不会四舍五入直接保存为3)

十位数:(num%100)/10   num%100 余数为71    71/10 =7.1  保存为7

个位数:num%10=1

个人理解希望对你有所帮助。

8 回复 有任何疑惑可以回复我~
#1

GKWBTT

xiexie
2020-01-30 回复 有任何疑惑可以回复我~
#2

小白萌新up

我可不可以理解为因为是三位数,第一个三位数是100,所以num=100,num<1000,至于num++,意思是从100开始,101,102,一直到999,按照这个顺序来算所有三位数,只要符合下面的hd,td,sd这个公式的,就都是所求的num
2020-02-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

百位十位个位是怎么定义的?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信