哪位大神教教我while语句里面的那几个语句什么意思,题目是求输出1到100之间每位数的乘积大于每
哪位大神教教我while语句里面的那几个语句什么意思,题目是求输出1到100之间每位数的乘积大于每位数的和的数...
哪位大神教教我while语句里面的那几个语句什么意思,题目是求输出1到100之间每位数的乘积大于每位数的和的数
展开
展开全部
while循环的作用是剥离一个数字的每一位,并且计算每一位数乘积与加和。
m%10,m除以10取余数,结果得到m的最后一位数字。例如,m=23,m%10=3,即得到m的最后一位数字。
m/10,int类型的m除以int类型的10,结果相除后取整,等价于截断m的最后一位数字。例如,m=23,m/10=2,即截断m的最后一位数字。
如此循环,直到m=0时,即取出了m的每一位数字。
k*=m%10,每次循环均累乘以当前从m中取出的一位数字,即实现计算m每一位数乘积。
s+=m%10,每次循环均累加以当前从m中取出的一位数字,即实现计算m每一位数加和。
以上是算法原理讲述,再完整模拟一下算法执行的过程。
假设m初始值为23。
m不为0,第1次循环:k赋值1*23%10=3 → s赋值0+23%10=3 → m赋值23/10=2。
m不为0,第2次循环:k赋值3*2%10=6 → s赋值3+23%10=5 → m赋值2/10=0。
m为0,循环结束。
此时,k即m每一位数乘积,s即m每一位数加和。
m%10,m除以10取余数,结果得到m的最后一位数字。例如,m=23,m%10=3,即得到m的最后一位数字。
m/10,int类型的m除以int类型的10,结果相除后取整,等价于截断m的最后一位数字。例如,m=23,m/10=2,即截断m的最后一位数字。
如此循环,直到m=0时,即取出了m的每一位数字。
k*=m%10,每次循环均累乘以当前从m中取出的一位数字,即实现计算m每一位数乘积。
s+=m%10,每次循环均累加以当前从m中取出的一位数字,即实现计算m每一位数加和。
以上是算法原理讲述,再完整模拟一下算法执行的过程。
假设m初始值为23。
m不为0,第1次循环:k赋值1*23%10=3 → s赋值0+23%10=3 → m赋值23/10=2。
m不为0,第2次循环:k赋值3*2%10=6 → s赋值3+23%10=5 → m赋值2/10=0。
m为0,循环结束。
此时,k即m每一位数乘积,s即m每一位数加和。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询