JavaDemo:双色球,随机位置放加减,使表达式的和为固定值

1. 编写双色球 红球一共6组,每组从1-33中抽取一个,6个互相不重复。 蓝球是从1-16中抽取1个数字,这整个组成双色球。

代码如下:

/*
 * Copyright (c) 2020, 2023, 3044483124@qq.com All rights reserved.
 *
 */
package cn.itcast;

import java.util.*;

/**
 * <p>Project: JavaStudy - ColorBall
 * <p>Powered by jiangbo On 2023-01-03
 * 09:56:23
 * <p>Created by IntelliJ IDEA
 *
 * @author jiangbo [3044483124@qq.com]
 * @version 1.0
 * @since 8/17
 */
public class ColorBall {
    public static void main(String[] args) {
        Random rand = new Random();
        int i = 0;
        while(i<10) {
//蓝色球(1-16 选出1个)
            int blue = rand.nextInt(1, 17);
//红色球(1-33 选出不重复的6个)
            Set<Integer> red = new HashSet<>();
            while (red.size() < 6) {
                red.add(rand.nextInt(1, 34));
            }
            List<Integer> rr = new ArrayList<Integer>(red);
            Collections.sort(rr);
//System.out.println(rr);
//System.out.println(blue);
            List ok = new ArrayList();
            ok.add(rr);
            ok.add(blue);
            System.out.println(ok);
            ++i;
        }
    }
    }



结果如下:

2. 编写程序求123456789之间随机位置放加减,使表达式的和为100,求出这样的表达式。(有11个表达式)

代码如下:

/*
 * Copyright (c) 2020, 2023, 3044483124@qq.com All rights reserved.
 *
 */
package cn.itcast;

import java.util.HashSet;
import java.util.Random;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * <p>Project: JavaStudy - Sum10
 * <p>Powered by jiangbo On 2023-01-03
 * 10:02:01
 * <p>Created by IntelliJ IDEA
 *
 * @author jiangbo [3044483124@qq.com]
 * @version 1.0
 * @since 8/17
 */
public class Sum100 {
    public static void main(String[] args) {
        Set<String> set = new HashSet<String>();
        while (set.size() != 11) {
            String str = getStr();
            if (sum(str) == 100) {
                set.add(str);
            }
        }
//计算完成之后输出
        for (String s : set) {
            System.out.printf("%s = 100%n", s);
        }
    }
    public static int sum(String str) {
        int sum = 0;
        Pattern pattern = Pattern.compile("-?\\d+");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            sum += Integer.parseInt(matcher.group());
        }
        return sum;
    }
    public static String getStr() {
        Random rand = new Random();
        StringBuilder sbu = new StringBuilder();
        String[] ops = {"", "+", "-"};
        for (int i = 1; i < 9; i++) {
            sbu.append(i + ops[rand.nextInt(ops.length)]);
        }
        sbu.append(9);
        return sbu.toString();
    }

    }


 结果如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值