文章目录
一,输入输出练习
1、输出乘法口诀表
public class MultiplicationTable {
// 乘法表
public static void main(String[] args) {
for(int row = 1;row<=9;row++){
for(int col=1;col<=row;col++){
System.out.print(col+"*"+row+"="+row*col+"\t");
}
System.out.println();
}
}
}
2、输出一个整数的每一位
import java.util.Scanner;
public class PrintNum {
public static void print(int num){
// 将传入的整数转化为字符串
String string = String.valueOf(num);
// 将字符串转化为字符数组
char[] data = string.toCharArray();
// 利用for语句打印每一位
for (int i = 0; i < data.length; i++) {
System.out.print(data[i]+" ");
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int num = scanner.nextInt();
print(num);
}
}
3、编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”,密码错误, 可以重新输 入,最多输入三次。三次均错,则提示退出程序
import java.util.Scanner;
public class Login {
/*
编写代码模拟三次密码输入的场景。
最多能输入三次密码,密码正确,提示“登录成功”,
密码错误, 可以重新输入,最多输入三次。
三次均错,则提示退出程序
*/
public static void main(String[] args) {
String password = "admin";
Scanner scanner =new Scanner(System.in);
int step = 3;
while(step!=0){
String string = scanner.nextLine();
if(string.equals(password)){
System.out.println("登陆成功");
break;
}else{
System.out.println("密码错误,请重新登陆!");
step--;
}
}
System.exit(1);
}
}
4、获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
import java.util.Scanner;
public class BinaryNum {
/**
获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(Integer.toBinaryString(num));
// 打印偶数
System.out.println("偶数序列:");
for (int i = 31; i >=1; i-=2) {
System.out.print(((num>>i)&1)+" ");
}
System.out.println();
System.out.println("奇数序列:");
// 打印奇数
for (int i = 30;i>=0; i-=2){
System.out.print(((num>>i)&1)+" ");
}
}
}
二、方法的创建和应用
1、创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算。
import java.util.Scanner;
public class MaxNum {
// 返回两个数字中最大的值
public static int max2(int a,int b){
return a > b ? a : b;
}
// 返回三个数字中的最大的值
public static int max3(int a,int b,int c){
int max1 = max2(a,b);
int max2 = max2(max1,c);
return max2;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
System.out.println("a,b中的最大值为:"+max2(a,b));
System.out.println("a,b,c中的最大值为:"+max3(a,b,c));
}
}
2、调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
import java.util.Arrays;
public class Adjustment {
/**
* 调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序。
* @param args
*/
public static int[] adjust(int[] arr){
int[] result = arr;
// 初始下标
int start = 0;
// 结尾下标
int end = arr.length-1;
while(start<end){
// 从前往后找偶数
while(start<end&&result[start]%2 != 0){
start ++;
}
// 从后往前找奇数
while(start<end && result[end]%2 == 0){
end --;
}
int temp = result[start];
result[start] = result[end];
result[end] = temp;
}
return result;
}
public static void main(String[] args) {
int[] arr= {1,2,3,4,5,6,7,8};
int[] result = adjust(arr);
System.out.println(Arrays.toString(result));
}
}
3、求 N 的阶乘 。
import java.util.Scanner;
public class Factorial {
public static int factor(int num){
int result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(factor(num));
}
}
3、求1!+2!+3!+4!+…+n!的和
import java.util.Scanner;
public class Factorial {
// 阶乘
public static int factor(int num){
int result = 1;
for (int i = 1; i <= num; i++) {
result *= i;
}
return result;
}
// 求1!+2!+3!+4!+........+n!的和
public static int factorSum(int n){
int result = 0;
for(int i = 1;i<=n;i++){
result+=factor(i);
}
return result;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(factorSum(num));
}
}
4、求斐波那契数列的第n项。(迭代实现)
import java.util.Scanner;
public class facbonacci {
public static int fac(int n){
if(n == 1 || n == 2){
return 1;
}
return fac(n-1)+fac(n-2);
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
System.out.println(fac(num));
}
}
5、有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字。
public class OblyOne {
public static int onlyOne(int[] arr){
int result = arr[0];
// 利用异或运算来找出其中的单独的数字,n^n = 0 n^n^n = n
for(int i = 1;i < arr.length; i++){
result = result^arr[i];
}
return result;
}
public static void main(String[] args) {
int[] arr = {1,2,3,3,2,4,6,6,1};
System.out.println(onlyOne(arr));
}
}