函数
函数(方法):指的就是一段具有独立功能的代码片段
修饰符 返回值类型 函数名(参数列表){
函数体
}
修饰符:访问权限
返回值类型:如果需要返回的数据值int,返回值类型int,如果不需要返回数据,返回值类型void
函数名:就是对这一片段进行起名
参数列表:函数需要用到的一些数据 可以给 可以不给
return:仅仅代表结束当前函数 如果有返回值 则在函数结束时 将数据进行返回
函数的重载
在同一类中 如有同名函数 则称之为函数之间为重载关系
重载的前提是 函数重名
与 修饰符 返回值类型 参数列表没有关系
仅仅和参数列表中 参数类型的排列组合有关系
public static int add(int n,int m){
return n+m;
}
private static double add(double n,double m){
return n+m;
}
private static double add(double n,int m){
return n+m;
}
private static double add(int n,double m){
return n+m;
}
常用的数学函数
三角函数
指数函数
取整函数
min、max、和abs方法
min求最小值
max求最大值
abs求绝对值
random方法
String相关函数
字符串
字符串比较
获取字符串中的字符或字串
编程题
import java.util.Scanner;
public class Demo5_1 {
public static void main(String[] args) {
//1.输入一个整数
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number:");
int number=scanner.nextInt();
//2.取出每一位数字
//3.所有数字相加
System.out.println(sumDigits(number));
}
public static int sumDigits(long n){
int sum=0;
while(true){
int num = (int) (n%10);
sum+=num;
//sum+=n%10;
n/=10;
if(n==0){
break;
}
}
return sum;
}
}
import java.util.Scanner;
public class Demo5_2{
public static void main(String args[]){
//1.输入一个数字
Scanner scanner=new Scanner(System.in);
System.out.print("Enter a number:");
int number=scanner.nextInt();
//2.调用函数判断整数是否回文
System.out.println(isPalindrome(number));
}
public static int reverse(int number){
// String s="";
// while(true){
// s+=number%10;
// number/=10;
// if(number==0){
// break;
// }
// }
// return Integer.parseInt(s);
String numberStr=""+number;
String s="";
for(int i=numberStr.length()-1;i>=0;i--){
s+=numberStr.charAt(i);
}
return Integer.parseInt(s);
}
public static boolean isPalindrome(int number){
return reverse(number)==number;
}
}
5.3
import java.util.Scanner;
public class Demo5_3{
public static void main(String args[]){
//1.输入一个数字
Scanner scanner=new Scanner(System.in);
System.out.print("Enter a number:");
int number=scanner.nextInt();
//2.调用函数显示整数的反向数
System.out.println(reverse(number));
}
public static int reverse(int number){
// String s="";
// while(true){
// s+=number%10;
// number/=10;
// if(number==0){
// break;
// }
// }
// return Integer.parseInt(s);
String numberStr=""+number;
String s="";
for(int i=numberStr.length()-1;i>=0;i--){
s+=numberStr.charAt(i);
}
return Integer.parseInt(s);
}
}
import java.awt.DisplayMode;
import java.util.Scanner;
public class Demo5_4 {
public static void main(String[] args) {
//1.提示用户输入两个数
Scanner scanner=new Scanner(System.in);
System.out.print("Enter three numbers:");
double num1=scanner.nextDouble();
double num2=scanner.nextDouble();
double num3=scanner.nextDouble();
//最终 num1存最小值 num2存中间值 num3存最大值
displaySortedNumbers(num1,num2,num3);
}
public static void displaySortedNumbers(double num1,double num2,double num3){
double temp=0.0;
if(num1>num2&&num1>num3){//num1最大
temp=num3;
num3=num1;
num1=temp;
if(num1>num2){
temp=num2;
num2=num1;
num1=temp;
}
}else if(num2>num1&&num2>num3){//num2最大
temp=num3;
num3=num2;
num2=temp;
if(num1>num2){
temp=num2;
num2=num1;
num1=temp;
}
}else if(num3>num1&&num3>num2){//num3最大
if(num1>num2){
temp=num2;
num2=num1;
num1=temp;
}
}
System.out.println(num1+"<"+num2+"<"+num3);
}
}
import java.util.Scanner;
public class Demo5_5 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the line:");
int line=scanner.nextInt();
displayPattern(line);
}
public static void displayPattern(int line) {
for(int i=1;i<=line;i++){
for(int k=1;k<=line-i;k++){
System.out.print(" ");
}
for(int j=i;j>=1;j--){
System.out.print(j+" ");
}
System.out.println();
}
}
}
public class Demo5_6 {
public static void main(String[] args) {
for(double celsius=40.0;celsius>=31.0;celsius--){
System.out.println(celsius+":"+celsiusToFahrenheit(celsius));
}
for(double fahrenheit=120.0;fahrenheit>=30.0;fahrenheit-=10){
System.out.println(fahrenheit+":"+fahrenheitToCelsius(fahrenheit));
}
}
public static double celsiusToFahrenheit(double celsius){
return (9.0/5)*celsius+32;
}
public static double fahrenheitToCelsius(double fahrenheit){
return (5.0/9)*(fahrenheit-32);
}
}
public class Demo5_7 {
public static void main(String[] args) {
for(double foot=1.0;foot<=10.0;foot++){
System.out.println(foot+":"+footToMeter(foot));
}
for(double meter=20.0;meter>=10.0;meter--){
System.out.println(meter+":"+meterToFoot(meter));
}
}
private static double meterToFoot(double meter) {
return 3.279*meter;
}
private static double footToMeter(double foot) {
return 0.305*foot;
}
}
5.8
public class Demo5_8{
public static void main(String[] args){
for(int i=1;i<=20;i++){
System.out.println(i+":"+m(i));
System.out.printf("%d : %8.4f\n",i,m(i));
}
}
public static double m(int i){
double sum=0.0;
for(int k=1;k<=i;k++){
sum+=1.0*k/(k+1);
}
return sum;
}
}
public class Demo5_9 {
public static void main(String[] args) {
for(int i=1;i<=901;i+=100){
System.out.println(i+":"+m(i));
}
}
public static double m(int i){
double pi=0.0;
double flag=1.0;
for(int k=1;k<=i;k++){
pi+=flag/(2*k-1);
flag=-flag;
}
return 4*pi;
}
}
import java.util.Random;
import java.util.Scanner;
public class Demo5_10 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the n:");
int n=scanner.nextInt();
printMatrix(n);
}
public static void printMatrix(int n){
Random random=new Random();//随机工具类Math.random()
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
System.out.print(random.nextInt(2)+" ");//[0,2)
}
System.out.println();
}
}
}
import java.util.Scanner;
public class Demo5_11_1 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the password:");
String password=scanner.nextLine();
if(isPasswordValid(password)){
System.out.print("Valid Password");
}else{
System.out.print("Invalid Password");
}
}
public static boolean isPasswordValid(String password){
boolean condition1=isLengthMoreThanEight(password);
boolean condition2=isOnlyContainsLetterAndDigit(password);
boolean condition3=isContainsMoreThanTwoDigits(password);
if(condition1&&condition2&&condition3){
return true;
}else{
return false;
}
}
public static boolean isLengthMoreThanEight(String password){
return password.length()>=8;
}
public static boolean isOnlyContainsLetterAndDigit(String password){
for(int i=0;i<password.length();i++){
char c=password.charAt(i);
if(!(isLetter(c)||isDigit(c))){
return false;
}
}
return true;
}
private static boolean isLetter(char c) {
return c>='a'&&c<='z'||c>='A'&&c<='Z';
}
private static boolean isDigit(char c) {
return c>='0'&&c<='9';
}
public static boolean isContainsMoreThanTwoDigits(String password){
return getDigitCount(password)>=2;
}
private static int getDigitCount(String password) {
int count=0;
for(int i=0;i<password.length();i++){
char c=password.charAt(i);
if(isDigit(c)){
count++;
}
}
return count;
}
}
5.12
import java.util.Scanner;
public class Demo5_12 {
public static void main(String[] args) {
//1.输入三边的值
Scanner scanner=new Scanner(System.in);
System.out.print("Ehter three side:");
double side1=scanner.nextDouble();
double side2=scanner.nextDouble();
double side3=scanner.nextDouble();
System.out.println(area(side1,side2,side3));
}
public static boolean isValid(double side1,double side2,double side3){
if(side1+side2>side3&&side1+side3>side2&&side2+side3>side1){
return true;
}else{
return false;
}
}
public static double area(double side1,double side2,double side3){
double area=0;
if(isValid(side1,side2,side3)){
double s=(side1+side2+side3)/2;
area=Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
}
return area;
}
}
import java.util.Scanner;
public class Demo5_13 {
public static void main(String[] args) {
System.out.print("Enter a number:");
System.out.println(sqrt(new Scanner(System.in).nextLong()));
}
private static double sqrt(long n) {
double nextGuess=0.0;
double lastGuess=1.0;
while(true){
nextGuess=(lastGuess+n/lastGuess)/2;
if(Math.abs(nextGuess-lastGuess)<0.0001){
break;
}else{
lastGuess=nextGuess;
}
}
return nextGuess;
}
}
public class Demo5_14 {
public static void main(String[] args) {
System.out.println(count("asjfkshbcgacsafcasdf",'a'));
}
private static int count(String str, char a) {
int count=0;
for(int i=0;i<str.length();i++){
if(str.charAt(i)==a){
count++;
}
}
return count;
}
}
import java.util.Scanner;
public class Demo5_15 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("请输入毫秒数");
long millis=scanner.nextLong();
System.out.println(covertMillis(millis));
}
private static String covertMillis(long millis) {
long totalSeconds=millis/1000;
long seconds=totalSeconds%60;
long totalMinutes=totalSeconds/60;
long minutes=totalMinutes%60;
long totalHour=totalMinutes/60;
long hour=totalHour%24;
String s="";
System.out.println(hour+":"+minutes+":"+seconds);
return s;
}
}
public class Demo5_16 {
public static void main(String[] args) {
int count=0;
int num=2;
while(true){
if(isSuShu(num)&&isHuiWen(num)){
System.out.print(num+" ");
count++;
if(count%10==0){
System.out.println();
}
if(count==100){
break;
}
}
num++;
}
}
public static boolean isSuShu(int num){
boolean flag=true;
for(int i=2;i<num/2;i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
public static boolean isHuiWen(int num){
String s="";
int temp=num;
while(true){
s+=temp%10;
temp/=10;
if(temp==0){
break;
}
}
return Integer.parseInt(s)==num;
}
}
public class Demo5_17 {
public static void main(String[] args) {
int count=0;
int num=2;
while(true){
if(isSuShu(num)&&!isHuiWen(num)&&isSuShu(reverse(num))){
System.out.print(num+" ");
count++;
if(count%10==0){
System.out.println();
}
if(count==100){
break;
}
}
num++;
}
}
public static boolean isSuShu(int num){
boolean flag=true;
for(int i=2;i<num/2;i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
public static boolean isHuiWen(int num){
return reverse(num)==num;
}
public static int reverse(int num){
String s="";
int temp=num;
while(true){
s+=temp%10;
temp/=10;
if(temp==0){
break;
}
}
return Integer.parseInt(s);
}
}
public class Demo5_18 {
public static void main(String[] args) {
for(int p=2;p<=31;p++){
int num=(int) (Math.pow(2, p)-1);
if(isSuShu(num)){
System.out.println(p+":"+num);
}
}
}
public static boolean isSuShu(int num) {
// TODO Auto-generated method stub
boolean flag=true;
for(int i=2;i<=num/2;i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
}
public class Demo5_19 {
public static void main(String[] args) {
for(int i=2;i<998;i++){
if(isSuShu(i)&&isSuShu(i+2)){
System.out.println("("+i+":"+(i+2)+")");
}
}
}
public static boolean isSuShu(int num) {
boolean flag=true;
for(int i=2;i<=num/2;i++){
if(num%i==0){
flag=false;
break;
}
}
return flag;
}
}
public class Demo5_20{
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean flag=true;
int lastSum=0;
while(true){
int p1=(int) (1+Math.random()*6);
int p2=(int) (1+Math.random()*6);
int sum=p1+p2;
System.out.println("You rooler "+p1+"+"+p2+"="+sum);
if(flag){
if(sum==2||sum==3||sum==12){
System.out.println("You lose!");
break;
}else if(sum==7||sum==11){
System.out.println("You win!");
break;
}else{
flag=false;
System.out.println("Point is "+sum);
lastSum=sum;
}
}else{
if(sum==lastSum){
System.out.println("You win!");
break;
}else if(sum==7){
System.out.println("You lose!");
break;
}else{
System.out.println("Point is "+sum);
lastSum=sum;
}
}
}
}
}
import java.util.Scanner;
public class Demo5_21 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the side:");
double side=scanner.nextDouble();
System.out.print("The area of the pentagon is "+area(side));
}
private static double area(double side) {
double area=(5*side*side)/(4*Math.tan(Math.PI/5));
return area;
}
}
5.22
import java.util.Scanner;
public class Demo5_22 {
public static void main(String[] args) {
//
Scanner scanner=new Scanner(System.in);
System.out.print("Enter the number of sides:");
int n=scanner.nextInt();
System.out.print("Enter the side:");
double side=scanner.nextDouble();
double area=area(n, side);
System.out.println(area);
}
public static double area(int n,double s){
double area=(n*s*s)/(4*Math.tan(Math.PI/n));
return area;
}
}
import java.util.Scanner;
public class Demo5_23 {
public static void main(String[] args) {
//1.输入三个坐标 6个double值
Scanner scanner=new Scanner(System.in);
System.out.print("Enter three points:");
double x0=scanner.nextDouble();
double y0=scanner.nextDouble();
double x1=scanner.nextDouble();
double y1=scanner.nextDouble();
double x2=scanner.nextDouble();
double y2=scanner.nextDouble();
//2.判断点的位置
if(leftOfTheLine(x0, y0, x1, y1, x2, y2)){
System.out.println("left");
}else if(rightOfTheLine(x0, y0, x1, y1, x2, y2)){
System.out.println("right");
}else if(onTheLine(x0, y0, x1, y1, x2, y2)){
System.out.println("on the line");
}
}
//在左边
public static boolean leftOfTheLine(double x0,double y0,
double x1,double y1,double x2,double y2){
return f(x0, y0, x1, y1, x2, y2)>0;
}
//在右边
public static boolean rightOfTheLine(double x0,double y0,
double x1,double y1,double x2,double y2){
return f(x0, y0, x1, y1, x2, y2)<0;
}
//在线段上
public static boolean onTheLine(double x0,double y0,
double x1,double y1,double x2,double y2){
return Math.abs(f(x0, y0, x1, y1, x2, y2)-0)<=0.001;
}
public static double f(double x0,double y0,
double x1,double y1,double x2,double y2){
return (x1-x0)*(y2-y0)-(x2-x0)*(y1-y0);
}
}