蓝桥杯 java b组 2015年省赛第六届 九数组分数

一、题目

九数组分数

1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?

下面的程序实现了该功能,请填写划线部分缺失的代码

public class A
{
    public static void test(int[] x)
    {
        int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];
        int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];        
        if(a*3==b) System.out.println(a + " " + b);
    }
    
    public static void f(int[] x, int k)
    {
        if(k>=x.length){
            test(x);
            return;
        }
        
        for(int i=k; i<x.length; i++){
            {int t=x[k]; x[k]=x[i]; x[i]=t;}
            f(x,k+1);
            _______________________________________       // 填空
        }
    }
    
    public static void main(String[] args)
    {
        int[] x = {1,2,3,4,5,6,7,8,9};        
        f(x,0);
    }
}

二、代码


package Lan2015;public class JiuShuZuFenShu {/*九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码*/public static void test(int[] x) //传入一个数组x{int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3]; //数组的前4位数是组成一个四位数字int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8]; //数组的后5位数组成一个五位数if(a*3==b) System.out.println(a + " " + b); //如果b是a的三倍,则再控制台输出第一个四位数和第二个五位数,中间以空格隔开}public static void f(int[] x, int k) //定义的f方法,传入一个数组,和一个整数k{if(k>=x.length){ //如果k大于等于x的长度test(x); //调用x方法return;//调用完test返回}for(int i=k; i<x.length; i++){ //从索引k处开始遍历{int t=x[k]; x[k]=x[i]; x[i]=t;} //交换k 位置和i位置的值f(x,k+1); //递归调用f方法int t=x[k]; x[k]=x[i]; x[i]=t; //填空恢复k位置和i位置的值}}public static void main(String[] args) //main方法{int[] x = {1,2,3,4,5,6,7,8,9}; //定义一个静态的数组f(x,0);//调用f方法}
}

三、反思 

        1.先看一下代码的执行过程

先看代码执行过程:
调用f方法 x.lenght=9
f(x,0) k=0, k<9, 转去执行for循环,i=0,k=0,相当于没交换f(x,0+1) k=1, k<9,转去执行for循环,i=1,k=1,相当于没交换f(x,1+1) K=2, K<9,。。。。。。。。。。。。f(x,8+1) k=9=x.lenght,
调用test(x),不满足,返回k=8,i=8,相当于不交换,f(x,8+1)
调用test(x),不满足,返回k=8,i=8,相当于不恢复,i++递归k=7,i=7,交换7位置和8位置的元素,[1,2,3,4,5,6,7,9,8],f(x,7+1)k=8<x.length,k=8,i=8,相当于没交换,f(x,8+1)
调用test(x),不满足,返回k=8,i=8,递归,k=7,i=8,恢复[1,2,3,4,5,6,7,8,9]递归,k=6,i=6,i++,交换k位置和i位置的元素,[1,2,3,4,5,6,8,7,9],f(x,6+1)k=7<x.length,k=7,i=7,相当于不交换,f(x,7+1)k=8<x.lenght,k=8,i=8,相当于不交换,f(x,8+1)
调用test(x),不满足,返回k=8,i=8,相当于不恢复递归,k=7,i=7,i++,交换7位置和8位置的元素[1,2,3,4,5,6,8,9,7],f(x,7+1)k=8<x.length,k=8,i=8,f(x,8+1)
调用test(x),不满足,返回 k=8,i=8,相当于不恢复,递归k=7,i=8,恢复[1,2,3,4,5,6,8,7,9]递归,k=6,i=7,恢复[1,2,3,4,5,6,7,8,9],k=6,i=7,i++交换[1,2,3,4,5,6,9,8,7],f(6+1)k=7,<x.length,i=7,相当于没交换,f(x,7+1)k=8<x.length,k=8,i=8,相当于没交换,f(x,8+1)
调用test(x),不满足,返回k=8,i=8,相当于不恢复递归,k=7,i=7,i++[1,2,3,4,5,6,9,7,8],f(下,7+1)k=8<x.length,k=8,i=8,相当不交换,f(x,8+1)
调用test(x),不满足,返回,k=8,i=8,相当于不恢复递归k=7,i=8,恢复[1,2,3,4,5,6,9,8,7]递归,k=6,i=8,恢复[1,2,3,4,5,6,7,8,9]递归,k=5,i=5,i++,交换[1,2,3,4,5,7,6,8,9].....

        2.通过不断地递归,来达到数字的每一种组合,从而找出满足条件的数的组法,递归完成时要将数组元素交换成原始状态,以方便下一次的搜索,就相当于回到树的根节点再去深入找下一个分支。

        3.深度优先遍历,每次不断深入到每个分支,直到遍历完每个空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伪分布式Spark集群搭建

一、软件环境 软 件 版 本 安 装 包 VMware虚拟机 16 VMware-workstation-full-16.2.2-19200509.exe SSH连接工具 FinalShell Linux OS CentOS7.5 CentOS-7.5-x86_64-DVD-1804.iso JDK 1.8 jdk-8u161-linux-x64.tar.gz Spark 3.2.1 spark-3.2.1-bin-…

PostgreSQL YUM安装

docker中的centos7中安装 选择对应的版本然后在容器中的centos7中执行下面命令 但是启动容器的时候需要注意 开启端口映射开启特权模式启动init进程 docker run -itd --name centos-postgresql -p 5433:5432 --privilegedtrue centos:centos7 /usr/sbin/init 启动然后进入后先…

java SSM在线学习网站系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM在线学习网站系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用…

【基于HTML5的网页设计及应用】——改变文字和背景颜色

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

有手就会Python自定义模块使用

1.自定义模块 自定义模块一般是在项目中根据自己的需求进行的封装 项目中自定义了额一个模块&#xff0c;module.py name "张三" age 23 weight 160 height 187 def test(): print("测试的方法") def demo(): print("天使的眼泪") …

html5cssjs代码 002 50以内的加法算式

html5&css&js代码 002 一些基本概念 50以内的加法算式 一、代码二、解释 50以内的加法算式。 一、代码 <!DOCTYPE html> <html lang"en"> <head><title>50以内的加法算式</title><meta charset"UTF-8"><m…

2024年Twitter上最值得关注的26名顶级程序员

2023年7月23日&#xff0c;在Twitter发布17年后&#xff0c;马斯克在Twitter上表示&#xff0c;是时候将该平台更名为X了。 对很多人来说&#xff0c;Twitter是一个分享他们对社会新闻或人生重大事件的想法的地方&#xff0c;这里也是紧跟文化潮流、获取全球最新消息的最佳方式…

如何更简捷地在 Java 中进行函数式编程

public static void findNemo(List names) { boolean found false; for(String name : names) { if(name.equals(“Nemo”)) { found true; break; } } if(found) System.out.println(“Found Nemo”); else System.out.println(“Sorry, Nemo not found”); } …

392.判断子序列

题目&#xff1a;给定字符串s和t&#xff0c;判断s是否为t 的子序列。 字符串的一个子序列是原始字符串删除一些字符而不改变剩余字符相对位置形成的新字符串。 解题思路&#xff1a;s是否是 t 的子序列&#xff0c;因此只要能找到任意一种 s 在 t 中出现的方式&#xff0c;即…

代码随想录day19(1)二叉树:完全二叉树节点个数(leetcode222)

题目要求&#xff1a;求一个完全二叉树的节点个数 思路&#xff1a;首先完全二叉树可以用普通二叉树的方法来求&#xff0c;但是需要遍历所有的节点。 但是对于完全二叉树来说&#xff0c;只有最底层右侧的节点可能没满&#xff0c;其余每层节点都达到了最大值。所以我们可以…

C++中PostMessage和SendMessage函数的用途、区别、使用方法及使用示例

在C的Windows编程中&#xff0c;PostMessage和SendMessage是用于进程间通信&#xff08;IPC&#xff09;的重要函数&#xff0c;特别是在同一应用程序的不同部分或不同应用程序之间发送消息时。这两个函数都用于向窗口发送消息&#xff0c;但它们在发送方式和行为上有所不同。 …

Nwatch在stm32上的移植

目录 Nwatch在stm32上的移植前言实验目的移植game1_task任务相关代码片段结果本文中使用的工程 Nwatch在stm32上的移植 本文目标&#xff1a;Nwatch在stm32上的移植 按照本文的描述&#xff0c;应该可以跑通实验并举一反三。 先决条件&#xff1a;装有编译和集成的开发环境&…

代码随想录算法训练营第四十四天|动态规划|完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

完全背包 文章 一维 只有一个物品时 尽可能多装 dp[j]max( dp[j] (一般0) , dp[j-weight[0]]value[0] (要求j>weight[0]) ) 下一层 dp[j]max (dp[j] , dp[j-weight[i]] valuw[i] ) 从前往后遍历&#xff1a;因为腾一件value更高就腾&#xff0c;至于腾一件后里面包含几件都…

Vue-- 实现简单版 vue-router

实现简单版vue-router3 前置知识&#xff1a; 1、vue 插件机制 &#xff1a; vue.use(arg) arg可以是一个函数和对象&#xff0c;需要有一个install方法&#xff0c;如果是函数&#xff08;没有install方法&#xff09;&#xff0c;则直接执行该函数。install 方法第一个参数…

Linux进程状态

目录 1.R运行状态&#xff08;running&#xff09; 2.S睡眠状态&#xff08;sleep&#xff09; 3.T或t状态&#xff08;stopped 或 tracing stop&#xff09; 4.Z状态&#xff08;zombie&#xff09;&#xff08;僵尸进程&#xff09; 1.R运行状态&#xff08;running&…

exec 和 xargs 命令的用法区别,优缺点

exec 和 xargs 都是用于执行命令的工具&#xff0c;但它们有不同的特点、用法和优缺点。 exec 命令特点和用法&#xff1a; 特点&#xff1a; exec 命令是由 find 命令提供的一个选项&#xff0c;它允许在 find 命令查找到的文件上执行指定的命令。exec 将对 find 查找到的每一…

通过Spring Boot 实现页面配置生成动态接口?

流程介绍 在Spring Boot中实现页面配置生成动态接口通常涉及几个关键步骤: 设计页面配置:首先,你需要设计一个用户界面(UI),允许用户通过此界面来配置接口的各种参数,例如HTTP方法(GET、POST等)、URL路径、请求参数、响应数据格式等。保存配置信息:当用户通过页面配置…

Self-supervised Contextual Keyword and Keyphrase Retrieval with Self-Labelling

文章目录 题目摘要方法数据集实验 题目 通过自我标记进行自我监督的上下文关键字和关键词短语检索 论文地址&#xff1a;https://www.preprints.org/manuscript/201908.0073/v1 项目地址&#xff1a;https://github.com/naister/Keyword-OpenSource-Data 摘要 在本文中&#x…

2023 年江苏省职业院校技能大赛(中职)网络搭建与应用赛项公开赛卷——技能要求

2023 年江苏省职业院校技能大赛&#xff08;中职&#xff09;网络搭建与应用赛项公开赛卷——技能要求 2023 年江苏省职业院校技能大赛&#xff08;中职&#xff09; 网络搭建与应用赛项公开赛卷——技能要求 竞赛说明 1. 竞赛内容分布 “网络搭建与应用”竞赛共分五个部…

反向传播 — 简单解释

一、说明 关于反向传播&#xff0c;我有一个精雕细刻的案例计划&#xff0c;但是实现了一半&#xff0c;目前没有顾得上继续充实&#xff0c;就拿论文的叙述这里先起个头&#xff0c;我后面将修改和促进此文的表述质量。 二、生物神经元 大脑是一个由大约100亿个神经元组成的复…