安卓资源收集java自学程序员

一、语句部分习题(下)

2017-11-20  本文已影响5人  孙浩j

1.检验控制台输入的日期是否合法

import java.util.*;

import java.text.SimpleDateFormat;

class Demo11

{

public static void main(String[] args)

{

System.out.println("请输入一个日期格式为xxxx-yy-zz");

Scanner in=new Scanner(System.in);

String s=in.next();

System.out.println(s);

int year=(s.charAt(0)-48)*1000+(s.charAt(1)-48)*100+(s.charAt(2)-48)*10+(s.charAt(3)-48);

int month=(s.charAt(5)-48)*10+(s.charAt(6)-48);

int day=(s.charAt(8)-48)*10+(s.charAt(9)-48);

int day1=0;

if(month<=12&&month>=1){

System.out.println("你输入的是合法的月份");

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

day1=31;

}else if(month==4||month==6||month==9||month==11){

day1=30;

}else {

if(year%4==0&&year%100!=0||year%400==0){

day1=29;

}else{

day1=28;

}

}

if(day>=day1){

System.out.println("日期不合法");

}else{

System.out.println("你输入的是合法的日期");

}

}

else{

System.out.println("月份不合法");

}

}

}

2.判断是不是质数


Scanner s = new Scanner(System.in);

System.out.println("输入判断的数");

int a = s.nextInt();

for(int i=2 ; i<=a;i++){    //最小的质数是2

if(a % i == 0&& i != a){  //除了1和本身之后没有约数即为质数

System.out.println("不是质数");

break;

}else if(i == a){                   //i一直再加,当i=a的时候还没有输出不是质数,它就不是质数

System.out.println("是质数");

a不断除i ,a除2,a除3,a除4,直到a除a之前都没有执行第一个if,此时i=a了,证明a除了1和本身之后没有约数,所以当a==i时它为质数

首先你会写出判断不是质数的代码,如果后边不写的话,如果一个数是质数会一直循环却不会输入任何东西,而简单加一个else的话,如果它是质数,每次a % i 不等于 0,每次都会输出一个是质数,这时我们应该想如何才能实现不是每一次不除开都输出是质数,而是当除不开其本身以外的所有数的时候才输出是质数,而i一直相加,所以说当i等于a之前这个程序都没有结束,就可以输出它是质数

3.找出一个数的质因数

思路:输入一个数,最小的质因子是2,当质因子小于这个数的时候进行判断,先看看这个数能不能除开2,如果能除开,则有一个因数为2,使这个数等于除2后的数,进入循环;如果除不开的话,将质因子加1后重新进入循环

System.out.println("请输入一个数");

Scanner in=new Scanner(System.in);

int a=in.nextInt();

int b=2;

System.out.print(a+"=");

while(b<=a){

if(a==b){

System.out.print(a);

break;

}else if(a%b==0){

System.out.print(b+"*");

a=a/b;

}

else b++;

}
  1. 有字符串“asdfasdf” 与“asdfliuyasdflkjh” 求两个字符串的最大相同子串
System.out.println("请输入第一个字符串");

Scanner in=new Scanner(System.in);

String s1=in.next();

System.out.println("请输入第二个字符串");

in=new Scanner(System.in);

String s2=in.next();

String s11=null;

String min=s1.length()>s2.length()?s2:s1;

String max=s1.length()>s2.length()?s1:s2;

out:for(int i=min.length();i>0;i--){  //字串长度

for(int j=0;j+i<=max.length();j++){  //字串位置

String s=min.substring(j,i+j);

if(max.indexOf(s)>=0){   //看看能不能找到

s11=s;

break out;    //设置一个标签,当发现一个最大的字串的时候

}    //不再找比它小的字串,直接跳出所有循环,进行输出

}

}

System.out.println(s11);

5.打印三角形的时候找到行与列的关系

上一篇下一篇

猜你喜欢

热点阅读