| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1252 人关注过本帖
标题:编写一个实现质因数分解(如12=2*2*3)的类
只看楼主 加入收藏
xiaolaba3330
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-10-19
结帖率:100%
收藏
 问题点数:0 回复次数:2 
编写一个实现质因数分解(如12=2*2*3)的类
package chap03;
import java.util.Vector;
import java.lang.Integer;
/**
 7.类的设计:
 编写一个实现质因数分解(如12=2*2*3)的类,必需的要求和建议如下:
 ① 类中至少有表示被分解的数的成员变量;
 ② 类中至少有表示分解结果(一批数)的成员变量;
 ③ 类中至少有一个构造方法,在构造的过程中完成分解;
 ④ 类中至少有一个更改数据的方法,在更改的过程中也完成分解;
 ⑤ 类中要有一个将对象转换成串(也就是将分解结果转换成串)的方法(toString()),但要求该方法在数没有变化的时候使用上次生成的串而不是低效率地每次都产生一个新的串;
 ⑥ 其他的成员变量或方法自己依据具体情况进行安排;
 */
public class Pg0307_01{
    public int num=8;  //
    public Vector result=new Vector();  //
    public String stringResult=null;  //

    public Pg0307_01(int n)
    {
        setNum(n);

    }
    public void setNum(int n)
    {
        result.clear();
        stringResult=null;
        num=n;
        //分解num???
        int i, k;
        k=num;
        for (i=2; i<=k; )
        {
            if (k%i!=0)
            {
                ++i;
                continue;
            }
            //i是因子
            Integer m=new Integer(i);
            result.add(m);
            k/=i;
        }

    }
    public String toString() //转换成串
    {
        if (stringResult==null) //没转换
        {
            int i;
            stringResult="";
            for (i=0; i<result.size(); ++i)//转换
            {
                stringResult+=result.get(i)+(i<result.size()-1?"*":""); //效率低:缓冲串
            }

        }
        return stringResult;
}

    这是主程序,下面是测试程序,但我写的不好,请求大家帮我修改下:package chap03;

public class text {
      public static void main(String[] args) {
          Pg0307_01 p1=new Pg0307_01(8);
          String s;
          p1.setNum(26);
         s=p1.toString();
         System.out.println(s);
         {
            
         }
   
      }
}
我自己运行发现结果显示的是p1.setNum(26);的分解,而没有Pg0307_01 p1=new Pg0307_01(8);的分解,现在我想把Pg0307_01 p1=new Pg0307_01(8);里面的8分解了,程序应该怎么改呢?
搜索更多相关主题的帖子: 质因数 编写 分解 
2008-04-17 13:28
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
收藏
得分:0 
回复 1# 的帖子
public class text {
      public static void main(String[] args) {
          Pg0307_01 p1=new Pg0307_01(8);
          String s;
          p1.setNum(26);//删掉这行就好了,自动调用构造函数
         s=p1.toString();
         System.out.println(s);
         {
            
         }
   
      }

世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣
2008-04-18 10:06
xiaolaba3330
Rank: 1
来 自:辽宁大连
等 级:新手上路
帖 子:175
专家分:0
注 册:2007-10-19
收藏
得分:0 
回复 2# 的帖子
thank you

编程学习中~~
2008-04-18 10:20
快速回复:编写一个实现质因数分解(如12=2*2*3)的类
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011461 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved