回头看竟然如此easy

2023-10-04 16:30
文章标签 回头 easy 竟然

本文主要是介绍回头看竟然如此easy,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

考研复试时候一道暴简单的算法题,就是没有调出来。4个数算24。晕啊

今天在两个小时(一小时思考一小时编程)里就轻松完成了唉。感觉自己的coding还是不熟练,代码写的也比较幼稚,嗯,需要强化。

偷了点懒没有写注解。

import java.io.IOException;
class Cal {
  String[] buf = new String[4];
  int count = 0;
 
  public boolean bingo24(double[] number) {
    if(number.length==1) {
      if(Math.abs(number[0] - 24) < 0.01) return true;
      else return false;
    } else {
      for(int i=0;i<number.length;i++)
        for(int j=i+1;j<number.length;j++) {
          double[] temp = new double[number.length-1];
          for(int k=0;k<j;k++) temp[k]=number[k];
          for(int k=j;k<number.length-1;k++) temp[k]=number[k+1];
          temp[i]=number[i]+number[j];
          if(bingo24(temp)) {
            buf[count++] = number[i] + "+" + number[j] + "=" + temp[i] + ";/n";
            return true;
          }
          temp[i]=number[i]-number[j];
          if(bingo24(temp)) {
            buf[count++] = number[i] + "-" + number[j] + "=" + temp[i] + ";/n";
            return true;
          }
          temp[i] = number[j] - number[i];
          if (bingo24(temp)) {
            buf[count++] = number[j] + "-" + number[i] + "=" + temp[i] + ";/n";
            return true;
          }

          temp[i]=number[i]*number[j];
          if (bingo24(temp)) {
            buf[count++] = number[i] + "*" + number[j] + "=" + temp[i] + ";/n";
            return true;
          }
          if(number[j]!=0){
            temp[i] = number[i] / number[j];
            if (bingo24(temp)) {
              buf[count++] = number[i] + "/" + number[j] + "=" + temp[i] + ";/n";
              return true;
            }
          }
         
          if (number[i] != 0) {
            temp[i] = number[j] / number[i];
            if (bingo24(temp)) {
              buf[count++] = number[j] + "/" + number[i] + "=" + temp[i] + ";/n";
              return true;
            }
          }
        }
    }
    return false;
  }
 
  public static void main(String args[]) {
    byte[] buffer = new byte[64];
    System.out.print("请输入四个整数,我给出算法得出24,数字之间用空格隔开,输完回车:");
    try {
      System.in.read(buffer);
    } catch (IOException e){
        System.err.print(e);
    }
    double[] number = new double[4];
    int readCount = 0;
    StringBuffer readNumberBuf = new StringBuffer();
    for (int i=0;i<buffer.length;i++) {
      if(buffer[i]>='0'&&buffer[i]<='9') readNumberBuf.append((char)buffer[i]);
      else if(buffer[i] == '/n'){
        number[readCount++] = Double.parseDouble(readNumberBuf.toString());
        readNumberBuf = new StringBuffer();
        break;
      } else {
        number[readCount++] = Double.parseDouble(readNumberBuf.toString());
        readNumberBuf = new StringBuffer();
      }
    }
    Cal cl = new Cal();
    if(cl.bingo24(number)) {
      for(int i=2;i>=0;i--) System.out.print(cl.buf[i]);
    }
    else System.out.print("no solution!");
  }
}

这篇关于回头看竟然如此easy的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/2318

相关文章

LibSVM学习(六)——easy.py和grid.py的使用

我们在“LibSVM学习(一)”中,讲到libSVM有一个tools文件夹,里面包含有四个python文件,是用来对参数优选的。其中,常用到的是easy.py和grid.py两个文件。其实,网上也有相应的说明,但很不系统,下面结合本人的经验,对使用方法做个说明。        这两个文件都要用python(可以在http://www.python.org上下载到,需要安装)和绘图工具gnup

11991 - Easy Problem from Rujia Liu?

题意: 输入一串整型数列,再输入两个数k,v,输出第k个v的序号。不存在则输出0,如第一个样例 8 41 3 2 2 4 3 2 11 3 //第1个3,序号为2,输出22 4 //第2个4,不存在,输出03 2 //第3个2,序号为7,输出74 2 思路: struct num {

【开发工具】开发过程中,怎么通过Easy JavaDoc快速生成注释。

文章目录 引言什么是Easy JavaDoc?Easy JavaDoc用来干什么?如何使用Easy JavaDoc?安装Easy JavaDoc配置Easy JavaDoc使用Easy JavaDoc生成注释 Easy JavaDoc与IDEA自带注释的区别IDEA自带注释Easy JavaDoc Easy JavaDoc的优缺点优点缺点 步骤 1:打开设置步骤 2:找到Easy JavaD

Kafka 为了避免 Full GC,竟然还在发送端设计了内存池,自己管理内存,太巧妙了...

一、开篇引出一个 Full Gc 的问题 在上一篇文章中,我们讲到了 Kafka 发送消息的八个流程,并且着重讲了 Kafka 封装了一个内存结构,把每个分区的消息封装成批次,缓存到内存里。 如下图所示: 上图中,整体是一个 Map 结构,Map 的 key 是分区,Map 的值是一个队列;队列里有一个个的小批次,里面是很多消息。 这样好处就是可以一次性的把消息发送出去,不至于来一条发送一条,

硬盘数据恢复软件TOP4榜单出炉,选对方法竟然如此重要

这年头,信息多得不得了,数据对我们来说太重要了。但是,不管是咱们自己还是公司,都可能碰上丢数据的倒霉事,特别是不小心把硬盘里的东西删了。数据一丢,不光可能亏钱,工作和生活也可能受影响。好在,市面上有不少厉害的数据恢复软件,能在紧要关头帮我们把丢的数据找回来。今天,我就来给你介绍几款大家都说好的硬盘数据恢复软件! 一、Foxit全面数据恢复 即时通道 \https://www.pdf365.cn

easy简化封装

//confirm function Confirm(msg, control) {$.messager.confirm('确认', msg, function (r) {if (r) {eval(control.toString().slice(11));}});return false;}//loadfunction Load() {$("<div class=\"datagrid-ma

Easy Voice Toolkit - 简易语音工具箱,一款强大的语音识别、转录、转换工具 本地一键整合包下载

Easy Voice Toolkit 是一个基于开源语音项目实现的简易语音工具箱,提供了包括语音模型训练在内的多种自动化音频工具,集成了GUI,无需配置,解压即用。 工具箱包括 audio-slicer、VoiceprintRecognition、whisper、SRT - to - CSV - and - audio - split、vits 和 GPT - SoVITS 等。这些优秀

easy_spring_boot Java 后端开发框架

Easy SpringBoot 基于 Java 17、SpringBoot 3.3.2 开发的后端框架,集成 MyBits-Plus、SpringDoc、SpringSecurity 等插件,旨在提供一个高效、易用的后端开发环境。该框架通过清晰的目录结构和模块化设计,帮助开发者快速构建和部署后端服务。 一、目录结构说明 project-root/│├─ backend/ # 后端项

[Meachines] [Easy] Safe BOF+ROP链+.data节区注入BOF+函数跳转BOF+KeePass密码管理器密码破译

信息收集 IP AddressOpening Ports10.10.10.147TCP:22,80,1337 $ nmap -p- 10.10.10.147 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u6 (protocol

05-2. Saving James Bond - Easy Version (25)

05-2. Saving James Bond - Easy Version (25) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue This time let us consider the situation in the movie "Live