输出200-300之间的数字求积是42 和是12

输出200-300之间的数字求积是42 和是12

不懂为什么十位是这样表达(i%10)/10  个位是i%10  百位是i%100

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
慕粉4037919 2017-09-20 12:47:36

for (int sum = 200; sum <= 300; sum++) {

    int a = sum / 100;       //百位

    int b = sum % 100 / 10;//十位

    int c = sum  % 10;//个位

        if(((a+b+c)==12)&&((a*b*c)==42)){

            System.out.println(sum);

        }

}

看看这个。 

你不明白的原因是      各个位的表达

假设sum==256

那a = 256/100  结果是2  

数学上来说这个的结果是2.56  虽说这个a 也是2.56但是 a 是一个int型  sum也是一个int型 100也是一个int 他只会做整除运算  所以后面的小数被舍掉了

如果你想得到一个2.56可以double a=sum/100.00这样子 (//跑题了。。。)

慕勒1079684 2017-09-15 10:29:49

亲爱的 希望能帮到你http://img1.sycdn.imooc.com/climg//59bb3b0b00010eb903530204.jpg

慕仙1067096 2017-09-13 00:03:27

你好,%是取余,/取整。所以个位是i%10 百位 (i/100)%10 十位是 (i/10)%10。

ps:题目中已确定是3位数,故百位也可以直接写成 i/100,但为了程序的健壮性最好写成(i/100)%10

  • 提问者 未知数X #1
    有点不懂为什么 个位是i%10 十位是(i%10)/10 百位i%100 我计算了一下 也没有看明白
    2017-09-19 21:58:33
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师