package Demo3; import java.util.Scanner; /** * * @author MZFAITHDREAM * */ public class Test7 { //把奇数偶数互换 //所有的基数位向left 所有的偶数位向right public static void main(String[] args) { // 创建Scanner System.out.println("输入数值"); Scanner scan=new Scanner(System.in); int n=scan.nextInt(); int even=n&0xaaaaaaaa; int odd=n&0x55555555; int result= (even>>1)^(odd<<1); System.out.println(result); } }
package Demo3; import java.util.Scanner; public class Test8 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输入数值"); Scanner scan=new Scanner(System.in); int n=scan.nextInt(); isprime(n); } static void isprime(int n) { // TODO Auto-generated method stub int m=0; for (int i = 2; i < n; i++) { if(n%i==0) m++; } if(m==0) { System.out.println("为素数"); }else { System.out.println("不是素数"); } } }
package Demo3; /** * 2022/3/9 */ import java.util.Scanner; /** * 小白上楼梯 * @author MZFAITHDREAM 递归 //找重复 //找变化 //找边界 */ public class Test9 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("请输入一要上楼梯的阶数"); Scanner sc=new Scanner(System.in); while(true) { int n=sc.nextInt(); int res=f(n); System.out.println(res); } } private static int f(int n) { if(n==0)return 1; if(n==1)return 1; if(n==2)return 2; return f(n-1)+f(n-2)+f(n-3); } }
package Demo3; /** * 2022/3/9 */ import java.util.Iterator; import java.util.Random; import java.util.Scanner; public class 二维数组累加求和 { int[][] nums=null; private void init() { System.out.println("输入数组的阶数:"); Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); scanner.close(); nums=new int[n][n]; for (int i = 0; i < nums.length; i++) { for (int j = 0; j < nums[i].length; j++) { nums[i][j]=Math.random()>0?new Random().nextInt(9)+1:0; System.out.print(nums[i][j]+"\t"); } System.out.println(); } print(); } private void print() { //利用二位数组遍历累加 int sum=0; for (int i = 0; i < nums.length; i++) { for (int j = 0; j < nums[i].length; j++) { sum+=nums[i][j]; } } System.out.println("累加"+sum); } //求* public static void main(String[] args) { // TODO Auto-generated method stub new 二维数组累加求和().init(); } }
package Demo4; import java.util.Scanner; public class Test { int[][] nums=null; private void init() { //生成二位数组 System.out.println("请输出数组的阶数"); Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); scanner.close(); //创建二维数组 nums =new int [n][n]; int m=1; for (int i = 0; i < nums.length; i++) { for (int j = 0; j < nums[i].length; j++) { nums[i][j]=m++; System.out.print(nums[i][j]+"\t"); } System.out.println(); } print(); } private void print() { //设置起点 终点坐标 int x1=0,y1=0; int x2=nums.length-1,y2=nums.length-1; //默认从left==>right boolean l2r=true; while(x1<=x2&&y1<=y2) { //从left==>right if(l2r) { System.out.print(nums[x1][y1]+"\t"); if(x1==0&&y1<y2) { //第一行 没有到最后的y 平移变向 y1++; l2r=!l2r; }else if (y1==y2) { //在第一行 没有到最后一Y 平移变向 x1++; l2r=!l2r; }else { //上 x1--; y1++; } }else { System.out.print(nums[x1][y1]+"\t"); //从right到left if(y1==0&&x1<=x2) { x1++; l2r=!l2r; } else if (x1==x2) { y1++; l2r=!l2r; }else { x1++; y1--; } } } } public static void main(String[] args) { // TODO Auto-generated method stub new Test().init(); } }
package Demo4; /** * * @author MZFAITHDREAM * 有一对兔子,从出生后第3个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子, * 假如兔子都不死,问每个月的兔子总数为多少? * 第一个月 1 A * 第二个月 1 A * 第三个月 2 A B * 第四个月 3 AA B B的第二月份 * 第五个月 5 AAAA B c 第三个月后每个月又生一对兔子 * 第六个月 8 AAAAA BB c * 第七个月 13 AAAAAAAA BBB C D * * */ public class Test1 { /** * 递归的形式 * @param args */ public static int num(int month) { int temp; int month1=1; int month2=1; for (int i = 3; i <=month; i++) { //将右边的值赋给left temp=month2; month2=month2+month1; month1=temp; } System.out.println("打印输出的内容"+month2); return month2; } public static void main(String[] args) { // TODO Auto-generated method stub num(2); } }
package Demo4; /** * 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下, * 求它在第10次落地时,共经过多少米?第10次反弹多高? * @author MZFAITHDREAM * */ public class Test10 { private static void fall(int num) { int sum=0; int hight=100; for (int i = 0; i <=num; i++) { sum=sum+hight; hight=hight/2; } System.out.println("L"+num+sum); System.out.println("H"+num+hight); } public static void main(String[] args) { // TODO Auto-generated method stub fall(10); } }
package Demo4; /** * * @author MZFAITHDREAM *0-1的浮点数 */ public class Test11 { public static void init() { // 1024 512 256 128 64 32 16 8 4 2 1 double num=0.625; StringBuilder sb=new StringBuilder('0'); while(num>0) { double r=num*2; if(r>=1) { sb.append("1"); num=r-1; }else { sb.append("0"); num=r; } if(sb.length()>32) { System.out.println("ERROR"); return; } } System.out.println(sb.toString()); } public static void main(String[] args) { // TODO Auto-generated method stub init(); } }
package Demo4; import java.util.Iterator; public class Test2 { /** * 判断101-200之间有多少个素数,并输出所有素数 * @param args */ public static void primNumber() { int j=0; for (int i = 101; i <200; i++) { for ( j = 2; j < i; j++) { if(i%j==0) { break; } } if(j==i) { System.out.println("输出结果"+i+" "); } } } public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("调用方法"); primNumber(); } }
package Demo4; public class Test3 { /** * 打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数, * 101到999 * 其各位数字立方和等于该数本身。 * 例如:153是一个 水仙花数 ,因为153=1的三次方+5的三次方+3的三次方。 * * @param args */ public static void init() { int a=1+5*5*5+3*3*3; System.out.println(a); int b=153%100; int t=153%10%10; int o=153%10; System.out.println(b); System.out.println(t); System.out.println(o); System.out.println("======================="); } public static void narcissus() { for (int i = 101; i < 1000; i++) { int a=i%100; int t=i%10%10; int o=i%10; if(i==a*a*a+t*t*t+o*o*o); System.out.println(i); } } public static void main(String[] args) { // TODO Auto-generated method stub init(); narcissus(); } }
package Demo4; import java.util.Iterator; /** * 将一个正整数分解质因数。例如:输入90,打印出90=2 *3 *3 *5。 * @author MZFAITHDREAM * */ public class Test4 { public static void init1() { /* * int a=2*3*3*5; System.out.println(a); int b=2*3*3*5*5; System.out.println(b); */ } public static void init(int num) { for (int i = 2; i <=num;) { if(i==num) { System.out.println(num); break; }else if (num%i==0) { System.out.println(i+" "); num=num/i; }else { i++; } } } public static void main(String[] args) { init(180); init1(); } }
package Demo4; import java.util.Scanner; /** * 利用条件运算符的嵌套来完成此题: * 学习成绩> =90分的同学用A表示, * 60-89分之间的用B表示, * 60分以下的用C表示。 * @author MZFAITHDREAM * */ public class Test5 { private static void getGradeLevel(int nume) { //三元运算符 System.out.println("该成绩为:"+(nume>=90?'A':(nume>=60?'B':'c'))); } public static void main(String[] args) { // TODO Auto-generated method stub //输入数值 getGradeLevel(100); grtdetyu(); } //方案二 private static void grtdetyu() { // TODO Auto-generated method stub System.out.println("请输入该学生的考试成绩:"); Scanner scanner=new Scanner(System.in); int n=scanner.nextInt(); System.out.println(n); if(n>=90) { System.out.println("该学生成绩为A"); }else if (n>=89 ||n<=60) { System.out.println("该学生成绩为B"); } else { System.out.println("该学生成绩为C"); } } }
package Demo4; /** * 输入两个正整数m和n,求其最大公约数和最小公倍数。 * @author MZFAITHDREAM * */ public class Test6 { public static void main(String[] args) { // TODO Auto-generated method stub init(23, 2); } private static int init(int a,int b) { // TODO Auto-generated method stub\ while(b!=0) { int temp=b; b=a%b; a=temp; System.out.println(a); } return a; } }
package Demo4; /** * 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 * @author MZFAITHDREAM * */ public class Test7 { private static void just(String String) { int number=0,letter=0,space=0,other=0; String s1="[a-zA-Z]"; String s2="[0-9]"; String s3="\\s"; String [] strings=String.split(""); for (String s : strings) { if(s.matches(s1)) { letter++; }else if (s.matches(s2)) { number++; } else if (s.matches(s3)) { space++; } else { other++; } } System.out.println("字符串的个数"+letter); System.out.println("空格的个数"+space); System.out.println("数字的个数"+letter); System.out.println("其他个数"+number); } public static void main(String[] args) { // TODO Auto-generated method stub just("AWE 48 939392 3KDN,NFD KL "); } }
package Demo4; public class Test8 { /** * 求s=a+aa+aaa+aaaa+aa…a的值, * 其中a是一个数字。 * 例如2+22+222+2222+22222(此时共有5个数相加) * ,几个数相加由键盘控制。 * @param args * @return */ private static int sum(int exp,int num) { int sum=exp; int temp=exp; for (int i = 1; i <num ;i++) { temp=temp%10; temp=temp+exp; sum=sum+temp; System.out.println(sum); } return sum; } public static void main(String[] args) { // TODO Auto-generated method stub sum(2, 6); } }
package Demo4; /** * 一个数如果恰好等于它的因子之和,这个数就称为 "完数 " * 。例如6=1+2+3.编程 找出1000以内的所有完数。 * @author MZFAITHDREAM * */ public class Test9 { public static void main(String[] args) { // TODO Auto-generated method stub init(); } private static void init() { for (int i = 2; i < 1000; i++) { int sum=0; for (int j = 1; j < i; j++) { if(i%j==0) { sum=sum+=j; } } if(sum==i) { System.out.println(sum); } } } }