ClassTwo__HomeWork
1,素数输出
设计思路声明两个函数分别用来实现输出任意两个数之间所有的素数和任意两个数之间最大最小的十个素数
方法一:一个数的因子不会大于它本身的开方;
方法二:创建一个数组来储存素数并输出最大最小的十个;

/*
*黄珺瑜 2018.10.13
*/
import java.util.Scanner;
public class PrimePrintf {
// private final int MAX = 10000;
// private boolean a[]=new boolean[MAX];
private int num1=0,num2=0,a=0,m=0;
Scanner cin = new Scanner(System.in);
public void Printf() { //任意输入两个整数,输出他们之间的所有素数
System.out.print("请输入两个整数:");
num1 = cin.nextInt();
num2 = cin.nextInt();
for(int i = num1;i<=num2;i++) {
boolean flag = true;
for(int j=2;j<=Math.sqrt(i);j++) {
if(i%j==0) {
flag = false;
break;
}
}
if(flag)
{
a++;
System.out.print(i+"\t");
if(a%5==0)
System.out.println();
}
}
System.out.println();
}
//输出 任意两个数之间的最大十个素数和最小十个素数
public void MaxMin() {
System.out.print("请输入两个整数:");
num1 = cin.nextInt();
num2 = cin.nextInt();
int prime[]= new int[Math.abs(num2-num1)]; //声明一个数组用来储存素数
//按大小顺序储存素数
for(int i = num1;i<=num2;i++) {
boolean flag = true;
for(int j=2;j<=Math.sqrt(i);j++) {
if(i%j==0) {
flag = false;
break;
}
}
if(flag)
{
prime[m] = i;
m++;
}
}
//输出前十个素数即最小的十个素数
System.out.println("最小的十个素数:");
for(int i=0;i<=9;i++) {
System.out.print(prime[i]+"\t");
if(i==4)System.out.println();
}
//找到最后一个素数即最大的素数的下标,并输出最后十个素数即最大的十个素数
for(int i=0;i<Math.abs(num2-num1);i++)
if(prime[i]==0) {
m=i;
break;}
System.out.println("\t\r最大的十个素数:");
for(int i=m-10;i<=m-1;i++) {
System.out.print(prime[i]+"\t");
if(i==m-6)System.out.println();
}
}
public static void main(String[] args) {
PrimePrintf pri = new PrimePrintf();
pri.Printf();
pri.MaxMin();
}
}
2,递归方法
判断是否是回文即判断前一半字符串等于后一半字符串倒过来即可。
使用回文的方法操作即输入前一半最后面的字符下标然后递归到第一个字符 判断是否等于后一半最后面的字符 然后一直往前比较,看前一半字符是否全等于后一半字符倒过来。



/*
* 黄珺瑜 2018.10.13
*/
import java.util.Scanner;
public class Judge {
public Scanner cin = new Scanner(System.in);
private char a[] = new char[100];
private boolean flag = true;
//使用递归方法判断是否前一半字符与后一半倒数字符都相等
public boolean JudgePlalindrome(int n ,boolean flag) {
if(n==0)
if(a[n]==a[a.length-1-n])
return flag =flag&&true;
else return flag =flag&&false;
else
return JudgePlalindrome(n-1,flag);
}
//输入字符串 并判断输出是否是回文
public void IsOrNot() {
String ss;
ss = cin.nextLine();
a=ss.toCharArray();
if(JudgePlalindrome(a.length-1, flag)) {
System.out.println("该字符串是回文");
}
else
System.out.println("该字符串不是回文");
}
public static void main(String[] args) {
Judge m = new Judge();
m.IsOrNot();
}
}
3,统计分析

声明一个结构体接收文本文件导出的字符串并将其分割然后进行比较如果有单词是相同的话就加一 然后比较哪个单词出现的次数多 并输出;
/*
*黄珺瑜 2018.10.13
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class Mananger {
private final int MAX = 1000;
private String[] st;
private String s; //用来转换StringBuilder类型
private words[] a = new words[MAX]; //声明一个类数组
private StringBuilder str=new StringBuilder(); //为了储存从文本中导出的字符串
/*
* 文件内容的导出
*/
public void output_1() throws IOException
{
File a=new File("information.txt");
FileInputStream b = new FileInputStream(a);
InputStreamReader c=new InputStreamReader(b,"UTF-8");
{
BufferedReader bufr =new BufferedReader(c);
String line = null;
while((line = bufr.readLine())!=null){
st=line.split("[,?!.\":...-;+-]"); //字符串变成字符串数组,设置多个分割符
for(int i=0;i<st.length;i++)
str.append(st[i]+" "); //将字符串添加到str类中
}
bufr.close();
}
c.close();
b.close();
s=""+str; //将str转换成String类
st=s.split(" "); //将s转换成字符串数组
}
/*
* 用来比较字符串数组中哪个单词出现的频率多
*/
public String Competive() throws IOException {
String Max;
output_1();
int m=1;
int max=0;
a[0]=new words(); //每次调用声明的a类数组都必须给它开辟一个空间
a[0].Words=st[0];
a[0].Number = 1;
for(int i=1;i<st.length;i++) {
boolean flag = true;
for(int j=0;j<m;j++) {
if(a[j].Words.equals(st[i])) { //如果字符串相同则它们出现的次数加一
a[j].Number++;
flag = false;
break;
}
}
if(flag) { //将不同的字符串传入
m++;
a[m-1]=new words();
while(st[i].equals(" "))
i++;
a[m-1].Words=st[i];
a[m-1].Number = 1;
}
}
for(int n=1;n<m;n++) { //比较得出出现的次数最多的那个单词
if(a[max].Number<a[n].Number)
max=n;
}
Max = a[max].Words;
return Max;
}
public static void main(String[] args) throws IOException {
Mananger con = new Mananger(); //声明一个Mananger对象用来调用Competive函数
System.out.println("出现最多的单词是:"+con.Competive());
}
}
ClassTwo__HomeWork的更多相关文章
随机推荐
- basename 命令
basename命令的作用是获取脚本的名字 basename 作用:从给定的包含绝对路径的文件名中去除路径,然后返回剩下的文件名 [root@salt-client- sh1]# basename / ...
- JSONObject,String,Map互相转换
JSONObject和String相互转换 JSONObject jsonObject = new JSONObject(); JSONArray jsonArray = new JSONArray( ...
- SQL SERVER 2016研究二
2.动态数据屏蔽 创建数据表: 创建账号并授予获取屏蔽后数据的权限 此函数:partial(0,"XXX-XXXX-",4) 表示从左边0位开始依次替换到倒数4位. 注意:屏蔽只作 ...
- kafka2 简单介绍
kafka是JMS的一种实现 JMS(java message service):middle ware,中间件技术.Queue:队列模式,P2P,点对点.publish-subscribe:主题模式 ...
- 005-docker-镜像使用、拉取、运行、创建、打tag
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 1.列出所有本地镜像 docker images ...
- 122A
Copy #include <stdio.h> int main() { int dig; int flag=0; scanf("%d", &dig); if( ...
- jenkins 常见问题汇总
1.jenkins api调用 https://my.oschina.net/sanpeterguo/blog/197931 其中,有个错误的地方,带参数构建时,使用的时POST方法,如下: curl ...
- import Tkinter error, no module named tkinter: "Python may not be configured for Tk”
install required devel module in your linux: yum install tk-devel yum install tcl-devel then,reconfi ...
- python字典对与list对象组合使用小问题
遇到的低级错误,做个小记录,防止下次在陷进去........ 两行数据,分别每行做为一个字典,存传在list中,但是现在问题来了,第二行的数据会覆盖第一行.结果就是,list存储了的两个元素的数据一样 ...
- Oracle 11g快速收集全库统计信息
环境:Oracle 11.2.0.4 采用并行的方式,快速收集全库统计信息,多用于跨版本升级之后,对全库的统计信息重新进行快速收集: --开启计时 set timing on --设置并行收集 exe ...