java第一天
整理并巩固
问题一:打开记事本,写helloworld程序
第一步:新建一个helloWorld.java的记事本(后缀名要改为.java)
第二步:写入代码
public class helloWorld{
public static void main(String[]args){
System.out.println("helloWorld!");
}
}
第三步:window+R,输入cmd,打开“命令行提示符”窗口
找到代码的位置,输入命令javac helloworld.java会出来一个字节码文件helloWorld.class,
再输入java helloWorld,执行字节码文件
问题二: 输入本人的姓名和年龄,存入变量,并且打印输出
代码:
package java01;
import java.util.Scanner;
/**
* @Auther: Xinbai
* @Date:2020/7/19 13:16
*/
public class input {
public static void main(String[] args) {
System.out.println("请输入你的姓名:");
Scanner sc=new Scanner(System.in);
String name=sc.next();
System.out.println("请输入你的年龄:");
int age=sc.nextInt();
System.out.println("帅气的"+name+age+"岁");
}
}
问题三:输入一个整数,判断是不是偶数
package java01;
import java.util.Scanner;
/**
* @Auther: Xinbai
* @Date:2020/7/19 15:09
*/
public class even {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
if (m%2==0){
System.out.println("这个数是偶数");
}
else
System.out.println("这个数是奇数");
}
}
问题四:自增/自减运算符
package java01;
import java.util.Scanner;
/**
* @Auther: Xinbai
* @Date:2020/7/19 18:38
*/
public class Calculate {
public static void main(String[] args) {
int i=1;
System.out.println(i++);
System.out.println(++i);
System.out.println(i);
System.out.println("***********");
int x=i++ + ++i;
System.out.println(x);
System.out.println(i);
System.out.println("***********");
for (int j = 0; j < 100; j++) {
i=i++;
}
System.out.println(i);
}
}
【说明】:i++ 是先赋值再自增,++i是先自增再赋值。看下面这段代码:
public class test {
public static void main(String[] args) {
int i=0;
i=i++;
System.out.println(i);
i=i++;
System.out.println(i);
}
}
public class test {
public static void main(String[] args) {
int i=0;
i=++i;
System.out.println(i);
i=i++;
System.out.println(i);
}
}
问题五:输入两个数,进行计算
【提示:】小数运算的结果可能是一个近似值,如果需要保留多少位,使用BigDecimal类
Java中提供了大数字(超过16位有效位)的操作类,即 java.math.BinInteger 类和 java.math.BigDecimal 类,用于高精度计算。其中 BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大小数的处理类。
BigDecimal例子:
import java.math.BigDecimal;
/**
* @Auther: Xinbai
* @Date:2020/8/2 17:23
*/
public class TestNum {
public static void main(String[] args) {
BigDecimal bigDecimal=new BigDecimal("5.1");
System.out.println(bigDecimal);
System.out.println("********************");
BigDecimal c=bigDecimal.setScale(2);//保留两位
System.out.println(c.divide(new BigDecimal(3)));
}
}
BinInteger的例子:用BinInteger求阶乘
package java05;
import java.math.BigInteger;
import java.util.Scanner;
/**
* @Auther: Xinbai
* @Date:2020/9/27 20:22
* 求100000的阶乘
*/
public class Test01 {
public static void main(String[] args) {
BigInteger num=new BigInteger("1");
BigInteger flag=new BigInteger("1");
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
long startTime=System.currentTimeMillis();
for (int i = 0; i <n ; i++) {
flag=flag.multiply(num);
num=num.add(new BigInteger("1"));
}
long endTime=System.currentTimeMillis();
System.out.println(n+"!="+flag);
System.out.println("本次运行共运行了"+(double)(endTime-startTime)/1000+"秒");
}
}
每日一题:
两数之和:
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。
示例:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
import java.util.Scanner;
/**
* @Auther: Xinbai
* @Date:2020/9/5 8:54
*/
public class TwoAdd {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int target=sc.nextInt();
int []arr={2,7,11,15};
for (int i = 0; i <arr.length ; i++) {
for (int j = i+1; j <arr.length ; j++) {
if (arr[j]==target-arr[i]){
System.out.println(i+" "+j);
}
}
}
}
}
【说明:】
class Solution {
public int[] twoSum(int[] nums, int target) {
for (int i = 0; i <nums.length ; i++) {
for (int j = i+1; j <nums.length ; j++) {
if (nums[j]==target-nums[i]){
return new int [] {i,j};
}
}
}
throw new IllegalArgumentException("No two sum solution");
}
}