代码好多啊 2021-06-13 18:04 采纳率: 0%
浏览 1505

输出 1~100 之间每位数的乘积大于每位数的和的数

不懂for循环里面的内容(尤其是while里面的

k*=m%10;

s+= m%10;

#include<stdio.h>
int main()
{int n,k=1;
int s=0,m ;
for(n=1;n<=100;n++)
{
k=1;s=0;m=n ; 
 while(m)
{
k*=m%10;

s+= m%10;
 m/=10    ;
}
if(k>s) printf("%d\n",n);
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • 关注

    m%10是取数值的个位数

    k和s分别乘以和加上m的个位数

    m/=10是m除以10取整,就是去掉个位数,并且十位变成个位。

    下次循环再次k和s分别乘以和加上m的个位数。

    直到m为0就不再循环了。

     

     

    评论

报告相同问题?