搜索
有爱,有技术,有你^_^)y
╱人◕‿‿◕人╲订下契约(注册新用户)

合作站点账号登陆

QQ登录

只需一步,快速开始

快捷导航
楼主: BABY莫名君
收起左侧

java菜鸟又来问问题了。。。

[复制链接]

该用户从未签到

3

主题

10

好友

2941

积分

Continue

积分
2941
发表于 2013-4-28 09:19:09 | 显示全部楼层
public class P87D5 {


        public static void main(String[] args) {
        int i=1,m=10,n=1,j;
        do{ i++;   
                for (n++;n<=i;){
                if(i%n==0)break;  这里的 break 只是跳出了这个 for 循环,没有跳出外面的 do-while
                        }
                System.out.println(n);
               
        }
     while (i<m);
        }
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

3

主题

10

好友

2941

积分

Continue

积分
2941
发表于 2013-4-28 09:21:54 | 显示全部楼层
public class P87D8 {

        
        public static void main(String[] args) {
        int i=1,n=0,j=1;float m;
        do {m=4*(1/i)*j;i=i+2;j=j*-1;n=n+1;}
    while (m==3.14159); 这个m的精度肯定和 3.14159 这个的精度不一样,你换个函数。
        System.out.print(n);
            }

或者    m>= 3.14158 且 m<=3.14160 这样的范围。
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

5

主题

7

好友

2689

积分

Continue

积分
2689
发表于 2013-8-2 17:27:02 | 显示全部楼层
浮点数在计算机里通常是用近似值表示的,例如1.0在计算机里可以用0.99999999999代替,所以不可以用m==3.14159这样来判断滴,这样永远是false滴,你可以用m-3.14159小于零点几几几几几来判断
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

16

好友

3836

积分

序章

积分
3836
发表于 2013-8-16 11:56:55 | 显示全部楼层
学习了、
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

签到天数: 1 天

连续签到: 1 天

[LV.1]初来乍到

2

主题

0

好友

4583

积分

序章

积分
4583
发表于 2015-9-5 09:57:23 | 显示全部楼层
第1个pi的近似值,你直接输出了n,整个循环只执行了一次,结果当然是1.
因为只有m==3.14159才会继续执行下一次,但是你第1次m的结果是4.0,具体怎么算你还要继续想,前面也有人给了

第2个,%只能说是来求余数为0的数,只能证明整除,不能证明是质数
似乎只要除以2、3、5有余数就可以了……似乎是这样,因为我的印象中,所有的非质数都是2、3、5的倍数,只要与这3个数都不能整除应该就是了,,但是你必须先把2、3、5这3个数做好处理……我刚刚试了一下,不处理的话,结果里是没有2、3、5的,,

100以内,除了2、3、5,其他貌似都成功了……
签名被小宅喵吞掉了~~~~(>_<)~~~~
回复 支持 反对

使用道具 举报

本版积分规则

小黑屋|手机版|技术宅(Z站|基宅) ( 粤ICP备18082987号-1 )

GMT+8, 2025-5-1 23:31 , Processed in 0.089624 second(s), 23 queries , Redis On.

Copyright © 2018 技术宅社区

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表