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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭娇珍 中级黑马   /  2012-12-24 12:30  /  2101 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭娇珍 于 2012-12-24 13:14 编辑

求100~500之间所有不能被3、5、7、11和13同时整除的整数的和。
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
   if (x%3==0&x%5==0&x%7==0&x%11==0&x%13==0)
   {
    System.out.print();
   }
   else
   {
    sum = x+sum;
   }
   
  }
  System.out.println("sum="+sum);
}
}
请问if语句后该怎么写呢,这个错了

评分

参与人数 1技术分 +1 收起 理由
奋斗的青春 + 1 先鼓励了在看。

查看全部评分

10 个回复

倒序浏览
本帖最后由 王亚运 于 2012-12-24 12:45 编辑

continue

继续下一次循环。
参见,continue和break 用法

貌似你判断错了
应该是:
if (x%3==0||x%5==0||x%7==0||x%11==0||x%13==0)
回复 使用道具 举报
class tt
{
        public static void main(String[] args)
        {
                int sum=0;
                for(int x=100;x<=500;x++)
                {
                        if(x%3==0&x%5==0&x%7==0&x%11==0&x%13==0)
                        {       
                                System.out.println(x);
                        }
                        else{
                                sum+=x;}
                       
                }
                System.out.println(sum);
        }
}

我运行 了啊,没错啊!

D:\Program Files\Java\test>javac tt.java

D:\Program Files\Java\test>java tt
120300
回复 使用道具 举报
{:soso_e189:}原来跟例子是一样的{:soso_e163:}{:soso_e163:}{:soso_e163:}
回复 使用道具 举报
楼上的代码运行是错误的
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
          sum+=x;
  }
  System.out.println("sum="+sum);
}
}
你的代码相当于是求出100到500的和,另外题目没有要求打印能被3,5,7,11整除的数
应该这么写
class Demo
{
public static void main(String[] args)
{
  int sum =0;
  for (int x = 100;x<=500; x++)
  {
          sum+=x;
          int n=0;
          if(x%3==0||x%5==0||x%7==0||x%11==0||x%13==0){
                n+=x;
          }
          sum=sum-n;
  }
  System.out.println("sum="+sum);
}
}
在这个里面我引入了一个变量,先求出100到500的和,当某个数字能被13,7,5,3整除的时候,求出这些能被整除的数的和,然后相减得到的就是楼主想要的效果了
另外判断语句里面的条件应该是或的关系,写成&,那就意味着必须能够被这几个数同时整除,所以判断条件也是错的
回复 使用道具 举报
不好意思啊,看错条件了,应该把||改成&,实在抱歉
回复 使用道具 举报
郑广昌 发表于 2012-12-24 12:54
class tt
{
        public static void main(String[] args)

你把500换成500000,打印结果就会有好多个了,思路不对
回复 使用道具 举报
周亮 发表于 2012-12-24 13:10
不好意思啊,看错条件了,应该把||改成&,实在抱歉

:)没事,一起学习
回复 使用道具 举报
代码是正确的
回复 使用道具 举报
张综 中级黑马 2012-12-24 13:58:12
10#
public class A {
        public static void main(String[] args) {
                int sum=0;
                for (int i = 100; i < 501; i++) {
                        if((!(i%3==0))&&(!(i%5==0))&&(!(i%7==0))&&(!(i%11==0))&&(!(i%13==0))){
                                sum+=i;
                                }
                               
        }
                System.out.println(sum);
}
}
回复 使用道具 举报
class Demo
{
    phblic static void main(String[] args)
      {
        int sum=0;
        for(int x=100;x<=500;x++)
           {
              if(x%3!=0 && x%5!=0 && x%7!=0 && x%11!=0 && x%13!=0)//&&是逻辑运算符,结果是boolean型,&是算数运算符,是给变量赋值的
                 sum+=x;
           }
                 System.out.println("sum="+sum);
      }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马