文章目录
一、前言
有了Java基础后,我们就可以解决一些简单的问题了ヾ(✿゚▽゚)ノ
二、杨辉三角
递归打印杨辉三角 ,line是行,col是列,列为1或者列等于行的时候返回1
public class YangHui {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入杨辉三角形的行数");
int line = scanner.nextInt();
for (int i = 1; i <= line; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(Tri(i, j));
}
System.out.println();
}
}
//递归算法
public static int Tri(int line,int col){
return (col==1||col==line)?1:Tri(line-1,col-1)+Tri(line-1,col);
}
}
【说明】在Tri()方法中,采用的是三目运算符(满足?满足执行A:不满足执行B)运行结果不美观,可控制空格的个数进行修改。
三、猜数字(随机点名器)
猜数字,猜不对会提示猜大了或者猜小了,直至猜对
1、猜数字
利用Random随机生成一个0-9的数字,再通过Scanner从键盘中输入一个数
public class GuessNumber {
public static void main(String[] args) {
int randomNum,guessNum;
Random random=new Random();
randomNum=random.nextInt(10);
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个0-9的数字");
guessNum=scanner.nextInt();
while(guessNum!=randomNum){
if(guessNum>randomNum)
System.out.println("给爷继续猜,你猜大了!");
else
System.out.println("给爷继续猜,你猜小了!");
guessNum= scanner.nextInt();
}
System.out.println("恭喜你,猜对了!");
}
}
【说明】random.nextInt中的10是范围,表示0-9,不包括10
2、点名器
输入三个学生的姓名,并遍历出他们,最后显示被点到名的人
public class CallName {
public static void main(String[] args) {
String[] arr=new String[3];
Scanner scanner=new Scanner(System.in);
//随机点名器
showInfo();
//存储
for(int i=0;i<arr.length;i++){
System.out.println("存储第"+(i+1)+"个姓名");
arr[i]=scanner.nextLine();
}
//遍历
for(int i=0;i< arr.length;i++){
System.out.println("第"+(i+1)+"个学生姓名:"+arr[i]);
}
System.out.println("被点到名的同学是:"+randomName(arr));
}
//随机点名方法
public static String randomName(String arr[]){
Random random=new Random();
int index=random.nextInt(arr.length);
return arr[index];
}
//前言介绍
public static void showInfo(){
System.out.println("——————随机点名器——————");
}
}
【说明】类似上面的猜数字,不过nextInt的范围变成了数组的长度,在通过randomName方法,返回随机数(数组下标)处的String类型的数组元素
四、超市购物
如果顾客A想买好果汁,超市有好果汁那么就输出A在XX超市买到了好果汁;若买不到,则输出A在XX超市啥也没买到!白跑了一趟!
超市类(只有一个封装的超市名称)
//超市
class Market{
private String marketName;
Market(String marketName){
this.marketName=marketName;
}
public void setMarketName(String marketName) {
this.marketName = marketName;
}
public String getMarketName() {
return marketName;
}
}
顾客类(顾客姓名和顾客需求)
//购物者
class Person{
private String name;
private String personNeed;
Person(String name,String personNeed){
this.name=name;
this.personNeed=personNeed;
}
public String getName() {
return name;
}
public String getPersonNeed() {
return personNeed;
}
}
产品类(只有被封装起来的产品名称)
//产品
class Product{
private String productName;
Product(String productName){
this.productName=productName;
}
public String getProductName() {
return productName;
}
}
主程序SuperMarket(通过Arraylist,数组的升级版,人为添加数据,再遍历进行比对)
public class SuperMarket {
//前言
public static void showInfo(){
System.out.println("——————超市购物程序——————");
}
//主函数
public static void main(String[] args) {
//展示前言
showInfo();
//flag标记是否有这个商品
boolean flag=false;
//实例化购物者
Person person=new Person("虎哥","歌姬证书");
//实例化超市
Market market=new Market("东百超市");
//实例化产品
ArrayList<Product> productArray=new ArrayList<>();
Product p1=new Product("好果汁");
Product p2=new Product("歌姬证书");
Product p3=new Product("唐老鸭声卡");
Product p4=new Product("沈阳冰红茶");
productArray.add(p1);
productArray.add(p2);
productArray.add(p3);
productArray.add(p4);
for(int i=0;i< productArray.size();i++){
String items=(productArray.get(i)).getProductName();
if(items==person.getPersonNeed()) {
flag = true;
break;
}
}
if(flag)
System.out.println(person.getName()+" 在 "+market.getMarketName()+" 买到了 "+person.getPersonNeed());
else
System.out.println(person.getName()+" 在 "+market.getMarketName()+" 什么也没有买到!白跑了一趟!");
}
}
顾客名:虎哥,需求:好果汁,是否成功:是
顾客名:刀哥,需求:打火机,是否成功:否