广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 10266 个阅读者
 
<<   1   2  下页 >>(共 2 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
知名不具
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x12
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Java][求助] 写出一个程式列出1~100中的质数
这是我自己写的

class Prime
{
public static void main(String[] args)
{
int i = 100; ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被知名不具在2005-08-06 18:45重新编辑 ]


献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2005-08-05 15:25 |
PeterPan 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x1 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

@@" 恕我直言,楼主可能要多用点心在程式逻辑方面。

第一行的 int i = 100; 没问题,但是下一行的 int x =(int) Math.sqrt(); 编译器就看不懂你的意思了,Math.sqrt() 这个 method 必须要传入一个 double 数值,然后他会回传一个开根号后的 double 数值,所以第二行是错误的写法。
第三行的 for (i=2; i<=100; i++) 可以这样写没错,但是一般的写法是 for (int i=2; i<=100; i++),这样子就不需要事先宣告 i 变数,且 i 变数只能存活在该回圈内,程式码看起来就能够比较简洁明了。
回圈中的 if (x % i != 0) 则是因为 x 无法接到数值,所以不合法。

回到最初的问题,你想要写一个程式列出1~100的所有质数。而质数的定义是:除了 1 与本身以外,无法被其他数值整除﹝在检查它是不是质数的时候,只需要从 2 检查到该数值的平方根即可﹞。所以我们至少需要两个回圈,第一个回圈产生1~100的数值来当作被检查的数字,第二个回圈则用来产生2~该数字的平方根﹝取小于平方根的正整数﹞并用一个 if 判断式来检查该数字是否为质数。基本上用来产生检查数字的第二个回圈,我会改用一个 method 来代替。

你的程式可能要重新设计,以符合需求。


神:在多项技术领域,具有不可取代性且拥有高度权威
魔:在某项技术领域,具有不可取代性且拥有高度权威
妖:有高度实战经验,且在专业领域上具有domain-Knowledge
侠:在技术层面上有过人专业能力
人:可以独立运作、设计暨开发系统
虫:coder only (my level)
献花 x0 回到顶端 [1 楼] From: | Posted:2005-08-05 17:37 |
知名不具
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x12
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

感谢PeterPan的回覆.
小弟是一个刚接触Java的新手,
以前从未接触过程式设计,

请问您所说的程式逻辑要如何研究才能进步呢?
复制程式
class Prime
{
       public static void main(String[] args) 
       {
              for (int i=1; i<=100; i++)
              {
                     double x = (Math.sqrt(i));
                     for (double j=2; j<=x; j++)
                     {
                            if (i % j != 0)
                            {
                                   System.out.println(i);
                            }
                     }
              }
       }
}
这是我又重写的程式,
但还是得不到正确答案,
我的逻辑概念真的需要加强 表情


[ 此文章被知名不具在2005-08-06 22:27重新编辑 ]


献花 x0 回到顶端 [2 楼] From:台湾中华电信 | Posted:2005-08-05 19:31 |
PeterPan 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x1 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

有点接近正确答案了:
1. x 要宣告成 int 才对
2. if 判断式有误

可以先把程式的流程图画出来,再依照流程图设计。再想想看。


神:在多项技术领域,具有不可取代性且拥有高度权威
魔:在某项技术领域,具有不可取代性且拥有高度权威
妖:有高度实战经验,且在专业领域上具有domain-Knowledge
侠:在技术层面上有过人专业能力
人:可以独立运作、设计暨开发系统
虫:coder only (my level)
献花 x0 回到顶端 [3 楼] From: | Posted:2005-08-05 19:48 |
知名不具
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x12
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

流程图???
我在补习班学java时,
老师没教过要画流程图...
要怎么画比较好呢?


献花 x0 回到顶端 [4 楼] From:台湾中华电信 | Posted:2005-08-05 20:18 |
PeterPan 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x1 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片


此文章被评分,最近评分记录
财富:200 (by panasonic732)


神:在多项技术领域,具有不可取代性且拥有高度权威
魔:在某项技术领域,具有不可取代性且拥有高度权威
妖:有高度实战经验,且在专业领域上具有domain-Knowledge
侠:在技术层面上有过人专业能力
人:可以独立运作、设计暨开发系统
虫:coder only (my level)
献花 x1 回到顶端 [5 楼] From: | Posted:2005-08-05 20:22 |
知名不具
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x12
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

昨晚想了一个晚上想不出来....
流程图也不知该怎么画....
我没有写程式的天份吗 表情


献花 x0 回到顶端 [6 楼] From:台湾中华电信 | Posted:2005-08-06 14:59 |
PeterPan 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x1 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

想学会写程式,除了要有过人的逻辑推理能力,最重要的还要有无比的毅力,不是一朝一夕就能学会的。

直接给你答案会妨碍你学习,只能祝你好运啰。


神:在多项技术领域,具有不可取代性且拥有高度权威
魔:在某项技术领域,具有不可取代性且拥有高度权威
妖:有高度实战经验,且在专业领域上具有domain-Knowledge
侠:在技术层面上有过人专业能力
人:可以独立运作、设计暨开发系统
虫:coder only (my level)
献花 x0 回到顶端 [7 楼] From: | Posted:2005-08-06 16:07 |
知名不具
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x12
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我把问题PO在BBS上,
有人给我以下建议:
搜寻 2~100 的质数 {

变数:目前想要检查的数字 ;
变数:目前想要检查的数字是或不是质数;

检查是否可以被 2~(目前想要检查的数字-1)整除 {
如果可以被某一个整除. 那设定 变数:目前想要检查的数字是或不是质数 为 不是(false).
}

如果在上一个检查回圈已经知道不是质数了. 那就不要列印出来.
否则就列印出来.
}

希望这样说明, 提问者可以理解程式应该有的逻辑.

我依照他的指点写了以下程式:
复制程式
class Prime 
{
       public static void main(String[] args) 
       {
              for (int i=1; i<=100; i++)
              {
                     for (int j=2; j<=(i-1); j++)
                     {
                            if (i % j == 0)
                            {
                                   break;
                            }
                            else
                            {
                                   System.out.println(i);
                            }
                     }
              }
       }
}

但会出现以下问题:
印出来的结果,少了2这个质数,并且多了9和99这两个不是质数的数字,
而且印出的质数会有很多个,例如5会印出三个,7会印出五个,11会印出八个,
要如何让质数只能印出一个呢?


[ 此文章被知名不具在2005-08-08 10:09重新编辑 ]


献花 x0 回到顶端 [8 楼] From:局域网对方和您在同一内部网 | Posted:2005-08-08 10:03 |
PeterPan 手机
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖
知名人士
级别: 知名人士 该用户目前不上站
推文 x1 鲜花 x99
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

1与2直接列印出来比较好,从3以上开始找。

检查的除数,从2~被除数的开根号无条件舍去小数点。

﹝如果在上一个检查回圈已经知道不是质数了. 那就不要列印出来.否则就列印出来.﹞
↑有语病,改成如下比较恰当

如果已经检查到最后一个除数,而且仍然不能整除,则该数值为质数。若任一次检查时能被除数整除,则该数值不是质数。


神:在多项技术领域,具有不可取代性且拥有高度权威
魔:在某项技术领域,具有不可取代性且拥有高度权威
妖:有高度实战经验,且在专业领域上具有domain-Knowledge
侠:在技术层面上有过人专业能力
人:可以独立运作、设计暨开发系统
虫:coder only (my level)
献花 x0 回到顶端 [9 楼] From:台湾中华电信 | Posted:2005-08-08 13:10 |

<<   1   2  下页 >>(共 2 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.103133 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言