2 woe2010aa woe2010aa 于 2016.01.19 05:00 提问

一个java写的程序,求详细每一行的解释

import java.util.Scanner;
public class Test{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
final int a =50;
final int b =10;
int c = 0;
int d = 2;
while(c<a){
boolean e =true ;
for(int divisor =2;divisor<=d/2;divisor++){
if(d%divisor==0){
e = false;
break;}
}
if (e){
c++;
if(c%b==0)
System.out.println(d);
else
System.out.print(d+" ");
}
d++;
}
}
}

11个回答

caozhy
caozhy   Ds   Rxr 2016.01.19 05:07
已采纳

求素数,不过程序写的很乱input没用到。不理解为什么这么写。

91program
91program   Ds   Rxr 2016.01.19 08:23

每一行?这个不太可能。每一行其实有简单,搞清楚代码有什么功能就行。

rui888
rui888   Ds   Rxr 2016.01.19 08:46

自己单步调试,对着理解哦。

enpterexpress
enpterexpress   Rxr 2016.01.19 08:58

程序得按块儿读

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.19 09:07

很简单,这段代码是打印前50个素数,并且每行输出10个素数,超过10个就换行。
添加注释如下:

 public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        //素数总数
        final int a = 50;
        //每行打印个数
        final int b = 10;
        //素数个数统计变量
        int c = 0;
        int d = 2;
        //当前素数总数小于50就继续求下一个素数
        while (c < a) {
            boolean e = true;
            for (int divisor = 2; divisor <= d / 2; divisor++) {
                if (d % divisor == 0) {
                    e = false;
                    break;
                }
            }
            if (e) {
                c++;
                //如果当前素数总数是10的倍数就换行
                if (c % b == 0)
                    System.out.println(d);
                else
                    System.out.print(d + " ");
            }
            d++;
        }
    }

运行结果,打印5行共50个素数。

 2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
u012965373
u012965373   2016.01.19 09:08

import java.util.Scanner; //导入需要的输入包
public class Test{ //声明测试类
public static void main(String args[]){ //声明main方法
Scanner input = new Scanner(System.in); //调用输入方法,这里没有使用到
final int a =50; //声明常量a
final int b =10; ////声明常量b
int c = 0; //声明变量c
int d = 2; //声明变量d
while(c<a){ //以下是判断素数的函数

boolean e =true ; //原理就是找到除了自身和一以外不能被其他数整除的,就是素数,并且输出,
for(int divisor =2;divisor<=d/2;divisor++){ //
if(d%divisor==0){
e = false;
break;}
}
if (e){
c++;
if(c%b==0)
System.out.println(d);
else
System.out.print(d+" ");
}
d++;
}
}
}

wuxinchao01
wuxinchao01   2016.01.19 09:17

我觉得还是先去看看基础在来搞吧,这些都需要没一行注释。。。。

Royal_lr
Royal_lr   Ds   Rxr 2016.01.19 09:27

这个应该不需要一行行注释吧

dcxy0
dcxy0   Ds   Rxr 2016.01.19 09:48

多学点慢慢就懂了,....................。。。。。。

xionglangs
xionglangs   Rxr 2016.01.19 10:36

能写出这个代码,不可能不理解这么简单的java代码吧,要不然就是复制的,那就表示你对java代码一点都不懂,这样就应该先看看java基础视频,或看看基础方面的书,或是找个老师帮忙。

共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于矩阵的运算---求每一列,每一行及对角线元素之和
题目:请写一个程序,对于一个m行m列的(1&amp;lt;m&amp;lt;10)的方阵,求其每一行,每一列及主对角线元素之和,最后按照从大到小的顺序依次输出。输入说明:用一组数据,输入的第一行为一个正整数,表示m,接下来的m行,每行m个整数表示方阵元素。输出说明:从打到小排列的一行整数,每个整数后跟一个空格,最后换行。输入样本:415 8 -2 631 24 18 71-3 -9 27 1317 21 38 6...
求二维数组每一列的和
描述 求二维数组每一列元素的和。 输入输入的第一行是2个整数m和n,表示以下会有一个m行n列的二维数组,数组元素都是整数。输出输出每一列元素的和,每个输出之间以空格隔开。样例输入 2 3 10 20 30 40 50 60 样例输出 50 70 90 #include #include int main() {     int i,j,n,m,s=0;   
子函数求取二维数组每一行的最大值
子函数求取二维数组每一行的最大值
Python 生成器(generator)的坑(把每一行看做一个list,试写一个generator,不断输出下一行的list)
生成器(generator)是一种“惰性”的算法生成器,比起列表生成式的一次性生成,他仅仅是将生成规则保存在生成器函数中(generator function),遇到next()计算并返回下一次的生成值,起到了节省内存空间的作用。 最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用ne
在主函数内任意输入一个5X6矩阵,编写一函数求出每一行的和放到一个一维数组中,输出此矩阵及其每一行的和。
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #define M 5 #define N 6 void linesummation(int *p) { int sum = 0,b[M]; for (int i = 0; i <= M*N; i++) { if (i != 0 &&
有一个二维数组整形数组中,每一行都有一个最大值,编程求出这些最大值以及他们的和
#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include void main() { int a[3][4] = { { 1, 2, 3, 4 }, { 8, 7, 6, 5 }, { 12, 10, 11, 9 } }; int max, m[3], n[3], k = 0,
route print命令详细解释
<br />route print命令可以查看路由表,在dos下面输入route print 就可以了,如何读懂路由表<br />本机地址:202.256.257.258 <br />掩码:255.255.255.0 <br />操作系统:w2k server C:/>route print <br />===========================================================================<br />Interface List <br />0
Python学习笔记(4) -- (关键词:杨辉三角、生成器)
链接: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014317799226173f45ce40636141b6abc8424e12b5fb27000 练习 杨辉三角定义如下: 1 1 1
generator输出杨辉三角
杨辉三角定义如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 把每一行看做一个list,试写一个generator,不断输出下一行的list: # 期待输出: # [1] # [1, 1] # [1, 2, 1] #
找出矩阵中含有0最多的一行(find the longest row of zero)
对于一个n*n的矩阵,其中只包含有0,1两种元素且,所有的0都在1之前,请找出矩阵中0最多的一行。(Given an N-by-N matrix of 0s and 1s such that in each row no 0 comes before a 1, find the row with the most 0s in O(N) time.) 初看这题,想到的算法就是每一行都设置一个计