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的更多相关文章
随机推荐
- runtime实现weak属性
我们可以自己创建一个 A 类,然后在“宿主对象”和“值对象”建立 weak 关系的时候,偷偷地创建一个 A 类的实例 a,绑定在 “值对象” 上. 当“值对象”销毁后,这个 a 也会被销毁.而 A 类 ...
- pip的问题小结
Q:同时安装py2和py3后,pip2不能用 A:使用:python2 -m pip install xxx 代替 pip2 install xxx 命令 Q:怎么用pip更新第三方包 A:pip2 ...
- (1.6)MySQL执行计划
关键词:mysql执行计划 1.用法 [1.1]explain select * from tab_name........ [1.2]desc select * from tab_name..... ...
- RN九宫格
九宫格可以用两种方式来做,一种使用SectionList,是我的另外一篇博客,还有一种的纯代码计算,下面是效果图 代码如下: var Dimensions = require('Dimensions' ...
- 帝国cms建站总结-(分页)
帝国cms分页代码文件t_functions.php 代码为: <?php if(!defined('InEmpireCMS')) { exit(); } define('InEmpireCMS ...
- openssl生成RSA公钥和私钥对
在ubuntu上要使用openssl的话需要先进行安装,命令如下: sudo apt-get install openssl 安装完成就可以使用openssl了. 首先需要进入openssl的交互界面 ...
- 抛异常 throw的注意事项
子类覆盖父类只能抛出父类的异常或者子类或者子集注意:如果父类的方法没有抛异常,那么子类覆盖时绝对不能抛. 子类继承父类时,方法抛异常,要么抛父类,要么抛父类下的子类,不能抛父类平级或以上的异常 原因是 ...
- 关于SimpleDateFormat时间转换总是显示1970年的问题
今天遇到了一个奇怪的问题, long time = 1488606363; Date date = new Date(time); java.text.SimpleDateFormat sDateFo ...
- MySQL--3约束和修改数据表总结
- centos 6.x下编译dpdk 16.7 心得
之前对dpdk编译了解得较少,之前直接就把centos yum update了,造成测试经理部署的centos 6.5升级为6.9,造成dpdk编译出错. 先说说centos 6.9下编译的心得: 1 ...