| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2505 人关注过本帖, 2 人收藏
标题:新手自学java .求老师帮助
取消只看楼主 加入收藏
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
结帖率:0
收藏(2)
已结贴  问题点数:20 回复次数:2 
新手自学java .求老师帮助
在看视屏学java 遇到一个作业 说用 循环 编写一个因式分解
我在网上看到很多代码,看到一个用while循环写的 但是看的不是很懂!
代码如下:求老师帮我注解下
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Input number:");
        int input = scan.nextInt();
        int i = 2;
        int count = 0;
        System.out.print(input + "=");
        while (input >= i) {            
            if (input % i == 0) {
                if (count > 0) {
                    System.out.print("*");
                }
                input = input/i;
                System.out.print(i);
                count++;
            }
            else {
                i++;
            }
        }
        if (count == 1) {
            System.out.print("*1");
        }
        else if (count < 1) {
            System.out.print("1*1");
        }
        System.out.println();
    }
}
搜索更多相关主题的帖子: 因式分解 public number import 学java 
2016-03-23 08:28
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
收藏
得分:0 
回复 楼主 jscs_he

我用这样的for循环也做出来了,但是每次最后都会*1,我想把那些素数单独说明 而不是 显示 7=7*1,老师这个应该怎么做,
import java.util.Scanner;
class zuoye1
{
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
            System.out.print("请输入一个数字:");
            int n = s.nextInt();
            System.out.print(n+"=")'
                for (int i =2;i<=n ;i++ )
                {
                    if(i>2)
                    if(n%i==0)
                    {
                        System.out.print(i+"*");
                        n=n/i;
                        i=1;
                    }        
                }
                System.out.println(n);
    }
}
2016-03-23 11:09
jscs_he
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2016-3-23
收藏
得分:0 
回复 3楼 jscs_he
这样应该也行 我最终是这么写的
用了while循环和for 循环都做了一遍 !
import java.util.Scanner;
class zuoye1
{
    public static void main(String[] args)
    {
        Scanner s = new Scanner(System.in);
            System.out.print("请输入一个数字:");
            int n = s.nextInt();
            System.out.print(n+"=");
            /*
                           int i = 2;
                        while (n>i)
            {
                    if(n!=i)
                {
                    if (n%i==0)
                    {
                        System.out.print(i+"*");
                        n = n / i;
                    }
                        i++;
                }
            }
                System.out.println(n);*/
                int count = 0;//累加因子数
                for (int i =2;i<n/2 ;i++ )//从2开始除,一个数除以大于自己一半的数必然不是整数
                {
                    
                    if(n%i==0)//判断是否有余数
                    {
                        System.out.print(i+"*");//没有余数打印出i*
                        n=n/i;//最后结果应该是等于1页就是i=n-1的时候循环不成立
                        count++;
                    }
                }
                System.out.print(n);
            /*    if(count ==0)
                        System.out.println("*1这个是数字素数");*/
               
               
    }
}
2016-03-23 11:39
快速回复:新手自学java .求老师帮助
数据加载中...
 
   



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

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