加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 

(2014-08-11 00:30:08)
标签:

宠物

分类: javaEE

public void fun(int n){  
  

              for(int i=2;i<=n;i++){
   
                      

                     if( (n>i)&&(n%i==0) ){               //1、循环时,找到因子  如:2
                               n=n/i;                                 //2、将n除以因子得到的商   赋给n    如:n=90/2=45
                               System.out.print(i+" ");      //3、输出当前因子 i
                               fun(n);                                //4、递归调用(重复1、2、3)

                               break                             // 5、避免步骤6重复输出;  假设n=6,那么输出的应该是:2  3;如果break不写,输出的将是2 3 3,这是因为递归调用fun(3)时,执行i++后,输出了i=3,然后程序执行最初的那个fun(),你可以理解成fun(6),但实际上6变成了3,在这个循环语句中, for(int i=2;i<=3;i++),还有一次i++的机会,于是步骤6又输出了一次i;但是如果有break;调用完fun(3)后,break跳出当前循环,循环结束
                     }


                    if(n==i){                                    //6、
                            System.out.print(i+" ");    
                      }

               }
 }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有