实验一:实现求正整数1-N之间所有质数的功能,并进行测试。
实验一 Java开发环境的熟悉(Linux + Eclipse)
实验内容
1.使用JDK编译、运行简单的Java程序;
2.使用Eclipse 编辑、编译、运行、调试Java程序。
- 命令行下的程序开发
- 进入虚拟机终端,mkdir 20155329test cd 20155329test mkdir exp1 cd exp1建立并进入实验一文件夹。
- 编译,运行 Java程序
使用IDEA编辑、编译、运行、调试Java程序
练习(通过命令行和Eclipse两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在Eclipse下练习调试程序)
实现求正整数1-N之间所有质数的功能,并进行测试。
-代码思路:我的代码:输出0—N之间的所有质数,所以if(N>0)时开始找质数,否则重新输入符合条件的N
-寻找质数:用两个for循环嵌套,相互整除,如果可以整除那么这个数不是质数,如果不能被整除,输出这个数,此数为质数。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) throws NumberFormatException, IOException{
System.out.println("请输入一个整数");
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));
int num=Integer.parseInt(strin.readLine());
boolean flag;
if(num>0){
for(int i=2;i<=num;i++){
flag = true;
for(int j = 2; j <=Math.sqrt(i); j++){
if(i % j == 0){
flag = false;
break;
}
}
if(flag){
System.out.println(i);
}
}
}else{
System.out.println("请重新输入!");
}
}
}
-
实验中遇见的问题:
-问题1:本实验中多次出现if for 语句 大括号匹配错误问题。
-认识:在编写代码的过程中一定注意每个括号包括的内容,与之对应的另一半。可以先打{}在中间补充内容可能会更加少犯此类问题。
-问题2:最初版本代码遇见不合法输入时就无法运行。
-解决办法:在实验楼中由于我使用了BufferedReader()方法,因此 这个方法会可能抛出IOException异常,另外输入格式与期望格式不匹配时还会抛出InputMismatchException异常,所以应添加 try{...}catch (Exception e) {System.out.println(e);} 捕捉异常。
3.实验报告中统计自己的PSP(Personal Software Process)时间:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 20min | 13.3% |
设计 | 20min | 13.3% |
代码实现 | 60min | 40% |
测试 | 30min | 20% |
分析总结 | 20min | 13.3% |
实验体会:
-本次实验题目在C语言中多次做过,所以思路清晰,很快能拟出流程框图,就差框图转换代码。转换代码是出现问题,怎么动态输入N 呢,出现异常怎么处理此类问题。很简单的问题让我不知所措,当被稍稍提醒之后立马出现,哦原来如此之类的感慨。知识点都学过,但是距离运用还有一段距离,这次实验让我深层次的理解感受到了纸上谈兵都是空,实践才是真道理这句话。
实验一:实现求正整数1-N之间所有质数的功能,并进行测试。的更多相关文章
- oracle中求1到100之间的质数和
declare i number:=1; j number:=0; sum1 number:=0;begin while(i<100) loop i:=i+1; j:=2; while(mod( ...
- 求正整数2和n之间的完全数
[题目描述] 求正整数22和nn之间的完全数(一行一个数). 完全数:因子之和等于它本身的自然数,如6=1+2+36=1+2+3 [输入] 输入n(n≤5000)n(n≤5000). [输出] 一行一 ...
- 求n到m之间素数的个数
Description 求n到m之间素数的个数 Input 多组测试数据,每组先输入一个整数t,表示组数,然后每组输入2个正整数n和m,(1 <= n <= m <= 10000) ...
- 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数
// 高精度+搜索+质数 BZOJ1225 [HNOI2001] 求正整数 // 思路: // http://blog.csdn.net/huzecong/article/details/847868 ...
- 求正整数n所有可能的和式的组合(如;4=1+1+1+1、1+1+2、1+3、2+1+1、2+2
作者:张小二 nyoj90 ,可以使用递归的方式直接计算个数,也可以通过把满足的个数求出来计数,因为在juLy博客上看到整数划分,所以重写了这个代码,就是列出所m的可能性,提交后正确.acmer的入门 ...
- js 求两个日期之间相差天数
//求两个日期之间的相差天数 function daysBetween(DateOne, DateTwo) { var OneMonth = DateOne.substring(5, DateOne. ...
- BZOJ 1225: [HNOI2001] 求正整数( dfs + 高精度 )
15 < log250000 < 16, 所以不会选超过16个质数, 然后暴力去跑dfs, 高精度计算最后答案.. ------------------------------------ ...
- LOJ-10102(求A到B之间的割点)
题目链接:传送门 思路:求A到B之间必要的中间节点 条件:(1)只有一条路径经过中间节点:(low[B]>=num[u]&&num[v]<=num[B],没有从B到u的路径 ...
- bzoj1225 [HNOI2001] 求正整数
1225: [HNOI2001] 求正整数 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 762 Solved: 313[Submit][Statu ...
随机推荐
- EDM邮件营销激活不活跃客户群的五大策略
有很多朋友给U-Mail马工大倒苦水:我邮件群发做了大量工作,可是有一些潜在消费者却始终无动于衷,你要说他没什么用吧,可是明明显示他有打开过,你把这个地址排除出去又有点可惜了,你要说他不可或缺,可是他 ...
- oracle 查看主外键约束
select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints ...
- Win8.1下运行环境/配置问题解决方案总结
目录 1.运行 adb shell 时报错" adb server version (26) doesn't match this client (39); killing... " ...
- 程序人生:02我来告诉你,一个草根程序员如何进入BAT
本文摘自左潇龙博客,原文出处:http://www.cnblogs.com/zuoxiaolong/p/life54.html 引言 首先声明,不要再问LZ谁是林萧,林萧就是某著名程序员小说的主角名字 ...
- webpack中热模块更新
Hot Module Replacement,热模块更新,很多时候会简写成HMR. "scripts": { "start": "webpack-de ...
- linq查询语法和方法-簡單用法
來自:http://www.cnblogs.com/knowledgesea/p/3897665.html 1.简单的linq语法 //1 var ss = from r in db.Am_recPr ...
- 容器适配器(一):queue
除了标准的顺序容器外,STL还提供了3种容器适配器,queue,priority_queue和stack 适配器是对顺序容器的包装,它的作用是简化接口. queue接口十分的简单,只有8个方法.再加上 ...
- SSM框架优缺点和spring boot 比起优缺点是什么?
一.SSM优缺点应该分开来说的,比如 1)spring 不说了,核心ioc.aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力. 2)spring mvc ...
- USDT/BTC/ETC/HT的解释
USDT 泰达币 泰达币(USDT)是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD(下称USDT),1USDT=1美元,用户可以随时使用USDT与USD进行1:1兑换 ...
- css中的定位问题
由于我最近在修改自己的网页布局,突然发现了自己对css中的定位概念还是混淆的,于是通过查官方文档,大神博客,自己实践,重新梳理了css定位的知识点.如果有不对的地方,请指正