diff --git a/LQ_008.java b/LQ_008.java new file mode 100644 index 0000000..daf7971 --- /dev/null +++ b/LQ_008.java @@ -0,0 +1,22 @@ +package Course_Codes; + +import java.util.Scanner; + +//输入n和n-1个整数,输出只出现1次的个数 +public class LQ_008 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + int n,ans=0;//读入几个数 + + while(sc.hasNext()) { + n=sc.nextInt(); + ans=0; + for(int i=0;i0) { + sum+=n%r; + n/=r; + } + return sum; + } +} diff --git a/涓変釜鏁版眰鏈澶у.java b/涓変釜鏁版眰鏈澶у.java new file mode 100644 index 0000000..d42d38f --- /dev/null +++ b/涓変釜鏁版眰鏈澶у.java @@ -0,0 +1,50 @@ +package Course_Codes; + +import java.util.Scanner; +//3个数求最大值 +public class 三个数求最大值 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + while(sc.hasNext()) { + int a=sc.nextInt(); + int b=sc.nextInt(); + int c=sc.nextInt(); + System.out.println("1:"+Get_Max1(a,b,c)); + System.out.println("2:"+Get_Max2(a,b,c)); + System.out.println("3:"+Get_Max3(a,b,c)); + } + + + } + //系统类库 + static int Get_Max3(int a, int b, int c) { + return Math.max(Math.max(a, b), c); + } + + static int Get_Max2(int a, int b, int c) { + int max=a; + if(b>max) + max=b; + if(c>max) + max=c; + return max; + } + + static int Get_Max1(int a,int b,int c) { + if(a>b) { + if(a>c) + return a; + else + return c; + } + else { + if(b>c) + return b; + else + return c; + } + } + + +} diff --git a/涓ゆ暟浜ゆ崲.java b/涓ゆ暟浜ゆ崲.java new file mode 100644 index 0000000..6eb8218 --- /dev/null +++ b/涓ゆ暟浜ゆ崲.java @@ -0,0 +1,21 @@ +package Course_Codes; + +import java.util.Scanner; + +//两数交换 +public class 两数交换 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + while(sc.hasNext()) { + int a=sc.nextInt(); + int b=sc.nextInt(); + //异或思想 + a=a^b; + b=a^b; + a=a^b; + System.out.print("a="+a+" b="+b); + } + } + +} diff --git a/鍩冩皬绛涙硶.java b/鍩冩皬绛涙硶.java new file mode 100644 index 0000000..b195cd7 --- /dev/null +++ b/鍩冩皬绛涙硶.java @@ -0,0 +1,31 @@ +package Course_Codes; + +import java.util.Arrays; + +//要得到自然数n以内的全部素数,必须把不大于根号n的所有素数的倍数剔除,剩下的就是素数。 +public class 埃氏筛法 { + + public static void main(String[] args) { + int n=10000; + boolean isprime[]=new boolean[n+1]; + Arrays.fill(isprime, true);//假定全部都是素数 + //判断特殊情况:0 1 + isprime[0]=false; + isprime[1]=false; + + for(int i=2;i*i<=n;i++) { + if(isprime[i]==true) + for(int j=2;i*j<=n;j++) //是素数的2i,3i,4i....倍 + isprime[i*j]=false; + } + int count=0; + for(int i=2;i<=n;i++) { + if(isprime[i]==true) { + count++; + System.out.println(i); + } + } + System.out.printf("从1到%d,共有%d个素数", n,count); + } + +} diff --git a/澶ф暟.java b/澶ф暟.java new file mode 100644 index 0000000..d784e8e --- /dev/null +++ b/澶ф暟.java @@ -0,0 +1,39 @@ +package Course_Codes; + +import java.math.BigInteger; + +public class 大数 { + + public static void main(String[] args) { + String num="FF";//num当作16进制,那么对应的就是10进制的255 + System.out.println(BigInteger.ONE); + BigInteger a=new BigInteger("9527"); + System.out.println("a:"+a); + //将num转化为二进制 + BigInteger b=new BigInteger(num,16); + System.out.println("b的十六进制为:"+b); + //将b转化为八进制 + System.out.println("b的八进制为:"+b.toString(8)); + //将b转化为二进制 + System.out.println("b的二进制为:"+b.toString(2)); + //a+b a.add(b)=9527+255 + System.out.println("a+b="+a.add(b)); + //a-b a.subtract(b)=9527-255 a的值没有变 + System.out.println("a-b="+a.subtract(b)); + //a*b + System.out.println("a*b="+a.multiply(b)); + //a/b + System.out.println("a/b="+a.divide(b)); + //a%b + System.out.println("a%b="+a.mod(b)); + //a b的最大公约数 + System.out.println("a b的最大公约数:"+a.gcd(b)); + //判断a是否为素数 + System.out.println("a是否为素数:"+a.isProbablePrime(10)); + //a^b%p + BigInteger two=new BigInteger("2"); + //10^2%13=9 + System.out.println("10^2%13="+BigInteger.TEN.modPow(two, new BigInteger("13"))); + } + +} diff --git a/瀛愰泦杈撳嚭.java b/瀛愰泦杈撳嚭.java new file mode 100644 index 0000000..fe377cb --- /dev/null +++ b/瀛愰泦杈撳嚭.java @@ -0,0 +1,27 @@ +package Course_Codes; +//输出集合{1,2,3,4}的所有子集 +public class 子集输出 { + + public static void main(String[] args) { + int [] a= {1,2,3,4}; + for(int i=0;i<15;i++) { + System.out.print("{"); + int n=i;//存储当前需要转换成二进制的i + int index=0;//当前是第几次除以2 + while(n>0) { + if(n%2==1) { + if(n>2) + System.out.print(a[index]+","); + else + System.out.print(a[index]); + } + index++; + n/=2; + } + System.out.println("}"); + } + + } + +} +/*不采用内置函数的是因为其只返回其值,没有补零*/ \ No newline at end of file diff --git a/蹇婕旂ず.java b/蹇婕旂ず.java new file mode 100644 index 0000000..939396d --- /dev/null +++ b/蹇婕旂ず.java @@ -0,0 +1,28 @@ +package Course_Codes; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; + +//基于 BufferedReader 的Java快读快读演示 +public class 快读演示 { + public static void main(String[] args) { + //System.in:读取字节流 InputStreamReader字节流->字符流转换的一个桥梁 + //BufferedReader类:从字符输入流中带缓存功能的读取字符,readline()按行读取字符串 + //eg: + //37 65 + //74 415 + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + String line="";//每次从in里面读取一行字符串 + try { + while((line=in.readLine())!=null){//只要还有行就继续读取,每次读取一行放到line字符串里 + String[] s=line.split(" +");//+表示会将多个空格看成一个空格 + int a=Integer.parseInt(s[0]); + int b=Integer.parseInt(s[1]); + System.out.println(a+b); + } + } catch (IOException e) { + e.printStackTrace(); + } + } +} diff --git a/鏁颁綅鎷嗗垎.java b/鏁颁綅鎷嗗垎.java new file mode 100644 index 0000000..d83670e --- /dev/null +++ b/鏁颁綅鎷嗗垎.java @@ -0,0 +1,18 @@ +package Course_Codes; + +import java.util.Scanner; + +//小明只认识100以内的数,如果是大于100的数,他只会拿这个数的后两位重算。 +public class 数位拆分 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + int a=sc.nextInt(); + int b=sc.nextInt(); + int sum=0; + sum=(a%100+b%100)%100; + System.out.print(sum); + + } + +} diff --git a/鏁存暟缈昏浆.java b/鏁存暟缈昏浆.java new file mode 100644 index 0000000..e2353b3 --- /dev/null +++ b/鏁存暟缈昏浆.java @@ -0,0 +1,24 @@ +package Course_Codes; + +import java.util.Scanner; +//整数翻转 +public class 整数翻转 { + + public static void main(String[] args) { + // TODO Auto-generated method stub + Scanner sc=new Scanner(System.in); + while(sc.hasNext()) { + int n=sc.nextInt();//整数翻转 + /* int sum=0; + while(n>0) { + //(输出法1)System.out.print(n%10); + sum=sum*10+n%10;//sum扩大10倍+尾数 + n=n/10; + } + System.out.print(sum);//(输出法2) */ + //法三:系统类库 + System.out.println(new StringBuffer(String.valueOf(n)).reverse().toString()); + } + } + +} diff --git a/鏃㈢害鍒嗘暟.java b/鏃㈢害鍒嗘暟.java new file mode 100644 index 0000000..bcc1e3b --- /dev/null +++ b/鏃㈢害鍒嗘暟.java @@ -0,0 +1,25 @@ +package Course_Codes; +/* + * 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 +如果一个分数的分子和分母的最大公约数是1,这个分数称为既约分数。 +请问,有多少个既约分数,分子和分母都是1到2020之间的整数(包括1和2020)?*/ +public class 既约分数 { + + public static void main(String[] args) { + int count=0; + int n=2020; + for(int i=1;i<=n;i++) { + for(int j=1;j<=n;j++) { + if(Gcd(i,j)==1) { + count++; + } + } + } + System.out.print(count); + } +//辗转相除法:计算公式gcd(a,b) = gcd(b,a mod b)。 + public static int Gcd(int a,int b) { + //当b为0时,a就是他的们间的最大公约数 + return b==0?a:Gcd(b,a%b); + } +} diff --git a/姹100闃朵箻0鐨勪釜鏁.java b/姹100闃朵箻0鐨勪釜鏁.java new file mode 100644 index 0000000..308b1d9 --- /dev/null +++ b/姹100闃朵箻0鐨勪釜鏁.java @@ -0,0 +1,41 @@ +package Course_Codes; + +import java.math.BigInteger; + +public class 求100阶乘0的个数 { + + public static void main(String[] args) { + int n=10; + Fun(n); + Fun2(n); + } + + public static void Fun(int n) { + BigInteger a=new BigInteger("1"); + for(int i=1;i<=n;i++) { + //a为BigInteger 类型,因此不可用a*=i; + a=a.multiply(BigInteger.valueOf(i)); + + } + String s=a.toString();//s=100!的值 + System.out.println(s); + int count=0; + for(int i=s.length()-1;i>=0;i--) { + if(s.charAt(i)!='0')//找到第一个非0的数 + break; + count++;//记录0的个数 + } + System.out.println(count); + } + //数学方法 + public static void Fun2(int n) { + int ans=0; + while(n>0) { + //因数中有1个5就有1个0,即计算5的个数 + ans=ans+n/5; + n=n/5; + } + System.out.println(ans); + } + +} diff --git a/姹備簩杩涘埗涓惈1涓暟.java b/姹備簩杩涘埗涓惈1涓暟.java new file mode 100644 index 0000000..c4caab1 --- /dev/null +++ b/姹備簩杩涘埗涓惈1涓暟.java @@ -0,0 +1,21 @@ +package Course_Codes; + +import java.util.Scanner; + +//求一个十进制的二进制中含1的个数 +public class 求二进制中含1个数 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + int count=0;//n的二进制中1的个数 + while(sc.hasNext()) { + int n=sc.nextInt(); + while(n>0) { + n=n&(n-1); + count++; + } + System.out.println(count); + } + + } +} diff --git a/姹傛渶澶у叕绾︽暟.java b/姹傛渶澶у叕绾︽暟.java new file mode 100644 index 0000000..f194635 --- /dev/null +++ b/姹傛渶澶у叕绾︽暟.java @@ -0,0 +1,29 @@ +package Course_Codes; + +import java.util.Scanner; + +//求两个数的最大公约数 +public class 求最大公约数 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + int a=sc.nextInt(); + int b=sc.nextInt(); + System.out.println("欧几里得:"+Gcd1(a,b)); + System.out.println("递归:"+Gcd(a,b)); + + } + //Gcd=最大公约数 + public static int Gcd(int a,int b) { + return b==0?a:Gcd(b,a%b); + } + + public static int Gcd1(int a,int b) { + while(b>0) { + int temp=a%b; + a=b; + b=temp;//Gcd(a,b)=>Gcd(b,a%b) + } + return a; + } +} diff --git a/绌蜂妇.java b/绌蜂妇.java new file mode 100644 index 0000000..b1d6e33 --- /dev/null +++ b/绌蜂妇.java @@ -0,0 +1,34 @@ +package Course_Codes; +//打印一个实心圆和一个空心圆 +public class 穷举 { + + public static void main(String[] args) { + int r=16; + sxy(r); + kxy(r); + } + static void sxy(int r) { + for(int y=-r;y<=r;y+=2) { + for(int x=-r;x<=r;x++) { + if(x*x+y*y<=r*r) + System.out.print("*"); + else + System.out.print(" "); + } + System.out.println(); + } + System.out.println(); + } + + static void kxy(int r) { + for(int y=r;y>=-r;y=y-2) { + int x=(int)Math.round(Math.sqrt(r*r-y*y)); + for(int i=1;i<=r-x;i++) + System.out.print(" "); + System.out.print("*"); + for(int i=1;i<=2*x;i++) + System.out.print(" "); + System.out.println("*"); + } + } +} diff --git a/绱犳暟鐨勫垽鏂.java b/绱犳暟鐨勫垽鏂.java new file mode 100644 index 0000000..0400b6e --- /dev/null +++ b/绱犳暟鐨勫垽鏂.java @@ -0,0 +1,25 @@ +package Course_Codes; + +import java.util.Scanner; + +public class 素数的判断 { + + public static void main(String[] args) { + Scanner sc=new Scanner(System.in); + while(sc.hasNext()) { + int n=sc.nextInt(); + System.out.println(isprime(n)?"Yes":"No"); + } + } + public static Boolean isprime(int n) { + //排除特殊情况:0 1 + if(n<1) + return false; + //i*i=10?1:0; + count+=temp; + a/=10; + b/=10; + } + System.out.print(count); + } + +}