论坛首页 招聘求职论坛

一道简单的Java面试题

浏览 103229 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-04-10  
zhangyang6380006 写道
LZ您开玩笑呢吧,敢要这么多这个题目都没做出来?我写个试试
for(int i=1;i<100;i++)
{
if(i % 2) == 1)
system.out.println(i+" 是质数");
else
break;
}
也不知道对不对,没测

你写的不对啊。你是求奇数。
0 请登录后投票
   发表时间:2011-04-10  
Bruce.Sun 写道
哥一看也愣了,想了半天没整明白啥是质数,看了楼主补充才明白需求,小整一下:
for (int i = 1; i <= 100; i++) {
Boolean prime = true;
// 遍历除以2-9,如果可以除尽则不是质数
for (int j = 2; j < 10; j++) {
if (i % j == 0) {
prime = false;
break;
}
}// end for j

if (prime)
System.out.println("质数:" + i);
} // end for i

不会框架的人,只会用这种笨方法,现在还记得去盛大面试的时候面试官问我不用中间变量怎么解决问题,可是习惯改不了,还是喜欢用中间变量 哈哈

正解!!
0 请登录后投票
   发表时间:2011-04-10   最后修改:2011-04-10
rickysun 写道
Bruce.Sun 写道
哥一看也愣了,想了半天没整明白啥是质数,看了楼主补充才明白需求,小整一下:
for (int i = 1; i <= 100; i++) {
Boolean prime = true;
// 遍历除以2-9,如果可以除尽则不是质数
for (int j = 2; j < 10; j++) {
if (i % j == 0) {
prime = false;
break;
}
}// end for j

if (prime)
System.out.println("质数:" + i);
} // end for i

不会框架的人,只会用这种笨方法,现在还记得去盛大面试的时候面试官问我不用中间变量怎么解决问题,可是习惯改不了,还是喜欢用中间变量 哈哈

正解!!

正解?是我没看懂吗?
您拿121试试?
啊,100以内啊。汗
0 请登录后投票
   发表时间:2011-04-10  
huangc1215 写道
rickysun 写道
Bruce.Sun 写道
哥一看也愣了,想了半天没整明白啥是质数,看了楼主补充才明白需求,小整一下:
for (int i = 1; i <= 100; i++) {
Boolean prime = true;
// 遍历除以2-9,如果可以除尽则不是质数
for (int j = 2; j < 10; j++) {
if (i % j == 0) {
prime = false;
break;
}
}// end for j

if (prime)
System.out.println("质数:" + i);
} // end for i

不会框架的人,只会用这种笨方法,现在还记得去盛大面试的时候面试官问我不用中间变量怎么解决问题,可是习惯改不了,还是喜欢用中间变量 哈哈

正解!!

正解?是我没看懂吗?
您拿121试试?
啊,100以内啊。汗

有个地方他写错了。
应该改成for(int j=2;j<i;j++)。
0 请登录后投票
   发表时间:2011-04-10  
    public class PrimeNumber{  
      public static void main(String[] args){  
        System.out.print("100以内的质数有为:");  
        int sum=0;  
        for(int i=2;i<100;i++){  
          if(isPrimeNumber(i)){  
            sum+=i;  
            System.out.print(i+",");  
          }  
        }  
          
        System.out.println("\n100以内的质数和为:"+sum);  
      }  
        

      public static boolean isPrimeNumber(int number){  
        for(int i=2;i<number/2+1;i++){  
          if(number % i==0){  
            return false;  
          }  
        }  
          
        return true;  
      }  
    }  

 来把,看看我的答案。!

0 请登录后投票
   发表时间:2011-04-10  
正确答案,就是上面我写的,大家可以参考。


100以内的质数有为:2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,
100以内的质数和为:1060
0 请登录后投票
   发表时间:2011-04-10  
Projack_Lin 写道
    public class PrimeNumber{  
      public static void main(String[] args){  
        System.out.print("100以内的质数有为:");  
        int sum=0;  
        for(int i=2;i<100;i++){  
          if(isPrimeNumber(i)){  
            sum+=i;  
            System.out.print(i+",");  
          }  
        }  
          
        System.out.println("\n100以内的质数和为:"+sum);  
      }  
        

      public static boolean isPrimeNumber(int number){  
        for(int i=2;i<number/2+1;i++){  
          if(number % i==0){  
            return false;  
          }  
        }  
          
        return true;  
      }  
    }  

 来把,看看我的答案。!

0 请登录后投票
   发表时间:2011-04-10  


for(int i=1;i<100;i++){
  boolean ok = false;
  for(int j=2;j<i;j++){
     if(i%j==0){
         ok = true;
         break;
      }
    }
   if(ok)
     System.out.println(i);
}



这是我想的不知道对不对。 素数应该是只能被本身或1整除的数吧。 小弟不才,打错请谅解。
0 请登录后投票
   发表时间:2011-04-10  
green_tea 写道


for(int i=1;i<100;i++){
  boolean ok = false;
  for(int j=2;j<i;j++){
     if(i%j==0){
         ok = true;
         break;
      }
    }
   if(ok)
     System.out.println(i);
}



这是我想的不知道对不对。 素数应该是只能被本身或1整除的数吧。 小弟不才,打错请谅解。




晕,发现楼上已经有大牛解决该问题了、呵呵。
0 请登录后投票
   发表时间:2011-04-10  
green_tea 写道


for(int i=1;i<100;i++){
  boolean ok = false;
  for(int j=2;j<i;j++){
     if(i%j==0){
         ok = true;
         break;
      }
    }
   if(ok)
     System.out.println(i);
}



这是我想的不知道对不对。 素数应该是只能被本身或1整除的数吧。 小弟不才,打错请谅解。

你写反了。
if(!ok) System.out.println(i);
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics