- ???個人主頁:深魚~
- ??收錄專欄:藍(lán)橋杯
- ??歡迎 ??點贊?評論?收藏
目錄
一、編程基礎(chǔ)
1.1 Java類的創(chuàng)建
?1.2 Java方法
?1.3 輸入輸出
?1.4 String的使用
二、競賽常用庫函數(shù)
1.常見的數(shù)學(xué)方法
2.大小寫轉(zhuǎn)換
推薦
前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站
一、編程基礎(chǔ)
1.1 Java類的創(chuàng)建
1. 藍(lán)橋杯Java 語言開發(fā)環(huán)境:
JDK 1.8
Eclipse-java-2020-09
API 幫助文檔(中文,chm格式)
所以我們要學(xué)會用Eclipse,雖然idea真的香,但是我們還是得熟悉這個環(huán)境,推薦大家下載下面這個最基礎(chǔ)的版本
2.main()的方法的聲明:public static void main(String args[ ]) (必須這么定義,這是Java的規(guī)范)
其中public static void 為類型,main為方法名,參數(shù)類型為String[ ] ,參數(shù)名為args只有這個參數(shù)名可以改,但是也不建議改
3.static關(guān)鍵字方便在沒有創(chuàng)建對象的情況下進(jìn)行調(diào)用(方法/變量),因為static修飾的成員變量和方法,從屬于類
4.final修飾符:變量一旦被賦值后,不能被重新賦值(final通常和static一起用來創(chuàng)建類常量)
5.Java的內(nèi)置數(shù)據(jù)類型比C語言多了byte類型(8位)和boolean類型(只有兩個取值,false和true,未初始化時默認(rèn)的就是false)
?1.2 Java方法
1.定義一個方法包含以下語法:
System.out.printIn( ):System是系統(tǒng)類,out是標(biāo)準(zhǔn)輸出對象,printIn( )是一個方法
這句話的意思就是調(diào)用系統(tǒng)類System中的標(biāo)準(zhǔn)輸出對象out中的方法printIn()
2.方法的重載:就是說一個類的兩個方法具有相同的名字,但是參數(shù)列表不同(參數(shù)個數(shù)不同/順序不同/類型不同都可以)
?3.算法中的常見方法:
(1)gcd(求兩個整數(shù)x,y的最大公約數(shù))
public static int gcd(int x,int y) {
if(y==0)
return x;
return gcd(y,x%y);
}
?思想:輾轉(zhuǎn)相除法
舉例:
a=28,b=21 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=21,b=28
c=a%b=7(c!=0) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?c=a%b=21(c!=0)
a=b=21; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a=b=28
b=c=7; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=c=21(這時候a和b交換了)
c=a%b=0
直接輸出b=7(最大公約數(shù))
將上面遞歸代碼轉(zhuǎn)為循環(huán)的形式:
public static int gcd(int a,int b) {
int c = 0;
while(b!=0) {
c = a%b;
a = b;
b = c;
}
return a;
}
(2)Icm(求兩個整數(shù)的最小公倍數(shù))
public static int lcm(int x,int y) {
return x*y/gcd(x,y);
}
思路:x * y=這兩個數(shù)的最大公約數(shù) * 最小公倍數(shù)
(3)判斷一個整數(shù)是否為質(zhì)數(shù)
public static boolean isPrime(int x) {
if(x==1) {
return false;//1特殊,不是質(zhì)數(shù)
}
for(int i=2;i<x;i++) {
if(x%i==0)
return false;
}
return true;
}
?1.3 輸入輸出
1.輸入方法(Scanner類):
(1)需要導(dǎo)入java.util包
(2)構(gòu)造Scanner對象,參數(shù)為標(biāo)準(zhǔn)輸入流System.in
2.Scanner類的9大輸入方法
(1)nextBoolean(),nextInt(),nextLong(),nextByte(),nextFloat(),nextDouble(),nextShort()//接收基本數(shù)據(jù)類型
(2)next() //接收讀取不帶空格的字符串,遇到空格讀取結(jié)束
(3)nextLine() //接收讀取整段字符串,以Enter為結(jié)束符,可讀取空格字符
3.輸出方法
(1)System.out.print() //最常見的輸出語句
(2)System.out.println() //和上面一個基本一樣,區(qū)別就是執(zhí)行后會換行
(3)System.out.printf() //跟C語言一樣的輸出,通過格式化文本和參數(shù)列表輸出
eg:結(jié)果保留兩位小數(shù):?System.out.printf("%.2f",13.14520);? //13.15
簡單真題實戰(zhàn):A+B 問題【OJ 示例題目】 - 藍(lán)橋云課
?1.4 String的使用
1.String類的特點:
(1)創(chuàng)建后不能改
(2)new方式創(chuàng)建的地址不同 eg:String str = new String()
(3)雙引號內(nèi)容相同,地址相同 eg:String str ="abc"
2.StringBuilder類和String類的區(qū)別:
(1)String的值不可變,StringBuilder的值是可變的
(2)String適于少量的字符串的情況;StringBuilder適于需要對字符串進(jìn)行修改的情況
3.String常用方法:
(1)常見的兩種構(gòu)造方法:
String str = new String();//創(chuàng)建一個null字符串對象 String str = new String("code");//創(chuàng)建一個為code的字符串對象
(2)char charAt(int index) //返回指定索引的字符
(3)int compareTo(Object o) //把這個字符串和另一個對象比較。大于返回1,等于返回0,小于返回-1
(4)String concat(String str) //將指定字符串連接到此字符串的結(jié)尾,并賦給新的字符串
(5)boolean equals(String str) //將此字符串與指定的字符串比較
(6)int indexOf(String str) //返回指定子字符串在此字符串中第一次出現(xiàn)處的索引。沒出現(xiàn)返回-1
(7)int length()//返回此字符串的長度
(8)String substring(int beginIndex,int endIndex) //返回一個新字符串,它是此字符串的一個子字符串(注意是左閉右開)
(9)char[] toCharArray() //將此字符串轉(zhuǎn)換為一個新的字符數(shù)組
(10)boolean isEmpty() //判斷字符串是否為空
?4.StringBuilder常見方法
(1)常見的構(gòu)造方法:
StringBuilder str = new StringBuilder();//創(chuàng)建一個null字符串對象
(2)void append(Object obj) //追加 Object參數(shù)的字符串表示形式
(3)int indexOf(Strring str) //返回指定子字符串第一次出現(xiàn)的字符串中的索引.
(4)StringBuilder reverse() //返回一個StringBuilder的對象,為該對象的反轉(zhuǎn)并賦值給一個字符串
(5)boolean isEmpty() //判斷字符串是否為空
(6)int charAt(int index) //返回指定索引的字符
簡單真題實戰(zhàn):數(shù)字反轉(zhuǎn) - 藍(lán)橋云課
二、競賽常用庫函數(shù)
1.常見的數(shù)學(xué)方法
使用時都要加上Math.(M要大寫)
方法 | 返回值 | 功能 |
max(double a, double b) | double | a和b之間的最大值 |
min(double a, double b) | double | a和b之間的最小值 |
abs(int a) | int | 返回參數(shù)的絕對值 |
sqrt(double a) | double | 取a的平方根,其中a不能為負(fù)數(shù) |
cbrt(double a) | double | 取a的立方根 |
pow(double a, double b) | double | 取a的b次方 |
例題:輸入n個整數(shù) a1,a2,a3....an,求這n個數(shù)的最大值max,最小值min,以及 ai-aj絕對值的最大值(i!=j)(n<=1000.ai<=1000)
實例:
輸入:5
1 2 3 4 5
輸出:5 1 4?
思路:
(1)先定義max和absmax為0,min為?Integer.MAX_VALUE
(2)單次循環(huán)遍歷用max和min方法求最大值和最小值
(3)雙重循環(huán)求差值,并用abs方法求差的絕對值;再用max方法求絕對值的最大值
import java.util.*;
public class Main {
public static void main(String [] args) {
//輸入
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int []f = new int [n];
int max = 0, min = Integer.MAX_VALUE, absmax = 0;
for(int i=0;i<n;i++) {
f[i] = s.nextInt();
}
//求max和min
for(int i=0;i<n;i++) {
max = Math.max(f[i], max);
min = Math.min(f[i], min);
}
//求absmax
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(i==j) continue;
absmax = Math.max(Math.abs(f[i]-f[j]), absmax);
}
}
//輸出
System.out.print(max+" "+min+" "+absmax);
}
}
2.大小寫轉(zhuǎn)換
(1)方法轉(zhuǎn)換
語法格式如下:
字符串名.toLowerCase() // 將字符串中的字母全部轉(zhuǎn)換為小寫,非字母不受影響
字符串名.toUpperCase() // 將字符串中的字母全部轉(zhuǎn)換為大寫,非字母不受影響
public static void main(String[] args) {
String str = "ADaddcD";
String str1 = str.toLowerCase();//大寫字母轉(zhuǎn)換為小寫字母,非字母字符不變
System.out.println(str1);//adaddcd
String str2 = "adadcDAD";
String str3 = str2.toUpperCase();//小寫字母轉(zhuǎn)為大寫字母,非字母字符不變
System.out.println(str2);//adadcDAD
}
(2)異或轉(zhuǎn)換
將一個字符串中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母:
一個字符a異或數(shù)字32就可以完成小寫轉(zhuǎn)換
實例:charA=a^32????????char a=A^32
原理:a = 01100001 A?= 01000001(大小寫字母的二進(jìn)制ASCII碼只有第6位有所不同)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
for (int i = 0; i < str.length(); i++) {
char x = str.charAt(i);
if(x>='a'&&x<='z'||x>='A'&&x<='Z') {
x^=32;
}
System.out.print(x);
}
}
本次內(nèi)容就到此啦,歡迎評論區(qū)或者私信交流,覺得筆者寫的還可以,或者自己有些許收獲的,麻煩鐵汁們動動小手,給俺來個一鍵三連,萬分感謝 !文章來源:http://www.zghlxwxcb.cn/news/detail-804728.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-804728.html
到了這里,關(guān)于【藍(lán)橋杯備賽Java組】第一章·語言基礎(chǔ)|競賽常用庫函數(shù)|輸入輸出|String的使用|常見的數(shù)學(xué)方法|大小寫轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!