A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵嘉男 中级黑马   /  2012-4-25 16:51  /  1526 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一个6位数,把个位数放到第一位,得到的结果是原来的4倍,求符合这条件的所有数的和
public class TestMath {
    public static void main(String[] args)
// 个位
        long num1 = 0;
// 其他位
        long num2 = 0;
        long total = 0;
        for (long i = 100000; i < 250000; i++) {
            num1 = i % 1;
            num2 = i / 1;
            if ((num1 * 100000 + num2) == 4 * i) {
                System.out.println(i);
                total += i;
            }
        }
报错了,请大家看看错误在哪里
        System.out.println("total : " + total);
    }
}

4 个回复

倒序浏览
  1. public class TestMath
  2. {
  3.     public static void main(String[] args)
  4.         {
  5. // 个位
  6.         long ge = 0;
  7. // 其他位
  8.         long num2 = 0;
  9.         long total = 0;
  10.         for (long i = 100000; i < 250000; i++)
  11.                 {
  12.             ge = i % 10;//任何数与1取余结果等于0
  13.             num2 = i / 10;//等于i
  14.             if ((ge * 100000 + num2) == 4 * i) //你的if语句不会执行的,(0+num2)==4*i
  15.                         {
  16.                 System.out.println(i);
  17.                 total += i;
  18.             }
  19.         }
  20. //报错了,请大家看看错误在哪里
  21.         //System.out.println("total : " + total);
  22.     }
  23. }
复制代码
回复 使用道具 举报
num1 = i % 10;
num2 = i / 10;
回复 使用道具 举报
public class TestMath {
    public static void main(String[] args)
// 个位
        long num1 = 0;
// 其他位
        long num2 = 0;
        long total = 0;
        for (long i = 100000; i < 250000; i++) {
            num1 = i % 1;//取个位上的数应该用i%10
            num2 = i / 1;//获取前面五位数应该用i/10,得到的数取整就把小数部分舍掉了
            if ((num1 * 100000 + num2) == 4 * i) {
                System.out.println(i);
                total += i;
            }
        }
//报错了,请大家看看错误在哪里
        System.out.println("total : " + total);
    }
}



//所以楼主将两1改为10,编译运行就可以了
回复 使用道具 举报
取个位上面的数应该是g=i%10,你那样取不到,把这里改过来就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马