package homework.class4;

import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream; public class HomeWorker {
public static void main(String[] args) {
// 1. 从键盘循环输入正整数,当输入-1时结束,统计输入的正整数的个数。
// home();
// 2. 从键盘输入一个整数,判断该数是否素数。素数是只能被1 和本身整除的数。可用穷举法来判断一个数是否是素数。
// home1();
// 输出100以内的所有素数
// home2();
// 九九乘法表
// home3();
// 分解质因数
// home4();
// 6.输入某年某月某日,判断这一天是这一年的第几天?
// home5();
// 7.输入一个数值,以反向的数值方式进行输出
// home6();
// 8.输入一个数值,根据输入数值打印出如下结果
// 如:输入3
// 3
// 33
// 333
// home7();
// 9 输入年份和月份 第六题的升级版
// 9.输入年份和月份可以显示出当月一共有几天,年份必须大于0,月份必须为1-12之间。
// 执行情况如下
// 请输入年份:
// 当年份输入错误后会出现提示,并要求重新输入年份
// 提示内容为:
// 您输入的年份有误!(年份必须大于0)
// 请重新输入正确的年份:
//
// 请输入月份:
// 当月份输入错误后会出现提示,并要求重新输入月份
// 您输入的月份有误!(月份范围为1-12)
// 请重新输入正确的月份:
//
// 所有输入完成后会显示当年当月有几天,随后询问用户是否要再次查询?
// 如果用户选择是,则再次执行程序
// 如果用户选择否,则结束程序
home8(); } private static void home8() {
Scanner scan = new Scanner(System.in);
while (true) {
// int year,month,day;
int feb = 29;
int[] months = {31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// List months = Stream.of(lists).collect(Collectors.toCollection(ArrayList::new));
// List months = new ArrayList<>(Arrays.asList(lists));
int currentDay;
System.out.println("输入年份(大于0):");
int year = scan.nextInt();
while (true) {
if (0 > year) {
System.out.println("您输入的年份有误!");
System.out.println("请重新输入正确的年份:");
year = scan.nextInt();
continue;
}
break;
} // 判断是否是闰年
// GregorianCalendar:判断年份是否是闰年的方法
// 二月
boolean leapYear = new GregorianCalendar().isLeapYear(year);
feb = leapYear ? 29 : 28;
// months.add(1,feb);
// System.err.println(months.get(1));
months[1] = feb;
// System.err.println(months[1]); System.out.println("请输入月份(1-12):");
int month = scan.nextInt();
while (true) {
if (1 > month || month > 12) {
System.out.println("您输入的月份有误!(月份范围为1-12)");
System.out.println("请重新输入正确的月份: ");
month = scan.nextInt();
continue;
}
break;
} // currentDay = (int) months.get(month-1);
currentDay = months[month - 1];
System.out.println("请输入输入日期:");
int day = scan.nextInt();
while (true) {
if (1 > day || day > currentDay) {
System.out.println("请输入输入日期,不大于" + currentDay + ":");
day = scan.nextInt();
continue;
}
break;
} if (1 == month) {
System.out.println("这一天是这一年的第" + day + "天");
return;
} int totalDay = 0;
for (int i = 0; i < month - 1; i++) {
// totalDay += (int)months.get(i);
totalDay += months[i];
}
totalDay += day;
System.out.println("这一天是这一年的第" + totalDay + "天");
System.out.println("是否要再次查询?(y/n、任意键退出)");
String str = scan.next();
if (str.equals("y")){
continue;
}
break;
} } private static void home7() {
int n = 6,temp=n;
for (int i = 1; i < n+1; i++){
for (int j = 1;j<=i;j++){
System.out.print(n);
}
System.out.println();
} } // 例如:输入54321 输出12345
// 输入879 输出978
private static void home6() {
int inputVal = 54321, n;
for (int i = inputVal; i > 0 ;i /=10){
n = i % 10;
System.out.print(n);
}
} private static void home5() {
// String str = "2019-12-13";
// String[] split = str.split("-");
// int year = Integer.parseInt(split[0]);
// int month = Integer.parseInt(split[1]); Scanner scan = new Scanner(System.in);
System.out.println("输入年份:");
int year = scan.nextInt();
System.out.println("请输入月份(1-12):");
int month = scan.nextInt();
System.out.println("请输入输入日期:");
int day = scan.nextInt();
//判断是否是闰年
//GregorianCalendar:判断年份是否是闰年的方法
boolean leapYear = new GregorianCalendar().isLeapYear(year); // 2月
int feb = leapYear?29:28;
// System.out.println(feb);
int[] months={31,feb,31,30,31,30,31,31,30,31,30,31};
int currentDay; while(true){
if (1 > month || month > 12){
System.out.println("请输入月份(1-12):");
month = scan.nextInt();
continue;
}
currentDay = months[month-1];
if (1 > day || day > currentDay){
System.out.println("请输入输入日期,不大于"+currentDay+":");
day = scan.nextInt();
continue;
} break;
} if (1 == month){
System.out.println("这一天是这一年的第"+ day +"天");
return;
} int totalDay = 0;
for (int i = 0; i < month-1; i++){
totalDay += months[i];
}
totalDay += day;
System.out.println("这一天是这一年的第"+ totalDay +"天"); } private static void home4() {
int n = 13;
if (1 == n){
System.out.println(n);
return;
}
for (int i = 2; i <= n; i++){
while (n % i == 0){
if (i == n){
System.out.println(n);
break;
}else {
System.out.print(i + "*");
n /= i;
}
}
}
} private static void home3() {
System.out.println("1\t\t2\t\t3\t\t4\t\t5\t\t6\t\t7\t\t8\t\t9\t");
System.out.println("--------------------------------------------------------------------------------");
for (int i = 1; i < 10; i++){
for (int j = i; j < 10;j++){
// if (i > j){
// System.out.println("\t");
// continue;
// }
System.out.print(i + "*" + j + "=" + i*j + "\t");
}
System.out.println();
for (int k = 0; k < i; k++){
System.out.print("\t\t");
}
}
} /**
* 判断一个数是不是素数:只能被1和本身整除
* @param n
* @return
*/
private static boolean numberIsPrime(int n) {
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
} private static void home2() {
int tmp = 100;
boolean flag = true; // if(tmp<1){
// System.out.print("该数不是质数!");
// return;
// }
// System.out.println(Math.sqrt(tmp));
if (1 == tmp){
return;
}
for (int i = 2; i <= tmp; i++){
if (numberIsPrime(i)){
System.out.print(i+"\t");
}
} } private static void home1() {
int tmp = 100;
boolean flag = true; if(tmp==1){
System.out.print("该数是质数!");
return;
}
// System.out.println(Math.sqrt(tmp));
// 开根号
// for(int i = 2 ; Math.sqrt(tmp/2) >=i ; i ++ ){
for(int i = 2 ; Math.sqrt(tmp) >= i ; i ++ ){
if(tmp%i==0){
System.out.print("该数不是质数!");
flag = false;
break;
}
}
if (false){
System.out.print("该数是质数!");
}
} // 1. 从键盘循环输入正整数,当输入-1时结束,统计输入的正整数的个数。
private static void home() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int val = scanner.nextInt();
int count = 0; while (val != -1){
count++;
System.out.println("请输入一个整数:");
val = scanner.nextInt();
}
System.out.println(count); }
}

JAVA循环结构学校上机经常遇到的几题 笔记的更多相关文章

  1. JAVA循环结构

    JAVA循环结构:顺序结构只能执行一次,如果要执行多次需要用到循环 JAVA中的循环结构有while:do...while:for: 1.while循环:先判断布尔表达式中的值,若为true,执行循环 ...

  2. Java循环结构 - for, while 及 do...while

    Java循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whil ...

  3. Java 循环结构

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  4. Java-Runoob:Java 循环结构

    ylbtech-Java-Runoob:Java 循环结构 - for, while 及 do...while 1.返回顶部 1. Java 循环结构 - for, while 及 do...whil ...

  5. Java 循环结构 - for, while 及 do...while

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  6. JavaSE基础(八)--Java 循环结构

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  7. Java循环结构之while和do-while循环

    循环结构知识点 本章技能目标 1理解循环的含义 2会使用while循环 3会使用do-while循环 4会使用调试解决简单的程序错误 一.   循环的含义 循环就是重复的做……(Java程序中的循环结 ...

  8. 四、 java循环结构

    for循环结构: 格式:①初始化条件;②循环条件;③迭代条件;④循环体 for(①;②;③){ //④ } 执行过程:①-②-④-③-②-④-③-...-④-③-②,直至循环条件不满足,退出当前的循环 ...

  9. 7、Java 循环结构

    本章讲解一下Java中常见的三种循环结构,顺序结构的程序语句只能 被执行一次.使用循环可以解决我们多个常量或者变量的同一类的操作或者更加复杂的操作. 循环 循环结构有三大类: 1.for循环:确定循环 ...

随机推荐

  1. setoolkit+花生壳 制作钓鱼网站

    国家法律一定要遵守,知识要用在对的地方. 本贴只为了和大家交流学习,请勿用在其他地方,损害任何人的利益. 今天我,来说一下钓鱼网站 (在kali) 我们选择  1  回车 再选择 2 回车 再选择3 ...

  2. Nacos快速开始

    Nacos是一个服务发现.配置管理和服务管理的组件. 说到服务注册与发现,我想到Eureka.Zookeeper 说到服务治理,我想到Dubbo 说到配置管理,我想到Apollo 作为后起之秀的Nac ...

  3. python + selenium +win32gui + winspy 实现图片上传

    过程:模拟点击上传按钮,打开Windows对话框,编辑栏输入文件路径(或网址)点击确定.网上随便找了一个进行测试. 点击后出现Windows上传对话框 用 winspy 来检测窗口的句柄 python ...

  4. 1)warning LNK4233

    名称 test.exe 包含非 ASCII 字符,在具有除 936 以外的 ANSI 代码页的系统上可能不能加载 DLL 名称 练习动态库.dll 包含非 ASCII 字符,如果系统没有与用于链接此 ...

  5. Java并发分析—synchronized

    在计算机操作系统中,并发在宏观上是指在同一时间段内,同时有多道程序在运行. 一个程序可以对应一个进程或多个进程,进程有独立的存储空间.一个进程包含一个或多个线程.线程堆空间是共享的,栈空间是私有的.同 ...

  6. Redhat7 开机启动服务

    #!/bin/sh ### BEGIN INIT INFO # Provides: jboss # Required-Start: $local_fs $remote_fs $network $sys ...

  7. VC调用VB写的COM

    VB. 步骤: 1.创建类库:类库的创建必须分为接口和实现类:给外面提供的是COM接口: 创建了接口和类之后还要创建"Guid",这个在"工具->创建GUID&qu ...

  8. HDU-4460 Friend Chains(BFS&权为1所有最短路的最大值)

    题目: For a group of people, there is an idea that everyone is equals to or less than 6 steps away fro ...

  9. ZJNU 1365 - Window--中级

    每次都寻找长度为k的区间内的最小值显然很容易超出时间限制 所以可以把窗户看作一个数量固定的队列 每次观察入列与出列的元素对答案贡献如何,以更新答案 /* Written By StelaYuri */ ...

  10. int a;和 int &a;的区别

    int a的意思是定义一个变量a int &a意思是定义一个引用 //引用相当于指针再取值 他和被引用的变量都是表示同一块内存 引用就是给变量取别名 int b ;int &a=b; ...