某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔 递归算法
import java.util.Scanner;public class jianlou {/* * 某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。 * 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗? * 如果有多种可能,则输出所有可能的情况。 * 我们规定:用户输入的第一行是:有错的总金额。 * 接下来是一个整数n,表示下面将要输入的明细账目的条数。 * 再接下来是n行整数,分别表示每笔账目的金额。 * * 要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列,中间用空格分开。 * 比如: * 用户输入: 6 5 3 2 4 3 1 表明:有错的总金额是6;明细共有5笔。 此时,程序应该输出: 1 3 3 1 2 4 3 4 为了方便,不妨假设所有的金额都是整数;每笔金额不超过1000,金额的明细条数不超过100。 */ public static void main(String[] args) {// TODO Auto-generated method stub Scanner cin=new Scanner(System.in);int err_sum=6;int a[]={3,2,4,3,1};int k =0;//开始去处理的位置boolean [] b=new boolean[a.length];f(err_sum,a,k,b,0);}/*err_sum:错误总和* a:账目清单* k:当前处理位置* b:元素取舍(默认不取,全为false)* curr_sum当前累加的总和*/private static void f(int err_sum, int[] a, int k, boolean[] b, int curr_sum) {// TODO Auto-generated method stubif (curr_sum>err_sum) {return;}if (err_sum==curr_sum) {for (int i = 0; i < b.length; i++) {if (b[i]==false) {System.out.print(a[i]+" ");}}System.out.println();return ;}if (k==a.length) {//当 当前元素等于最后一个元素时,遍历完毕return;}f(err_sum, a, k+1, b, curr_sum);curr_sum+=a[k];//是否加上当前项,现一加上,置为trueb[k]=true;f(err_sum, a, k+1, b, curr_sum);b[k]=false;//回溯,以便后一次遍历恢复原来数据}}
某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔 递归算法相关推荐
- 某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?
/** 某财务部门结账时发现总金额不对头.很可能是从明细上漏掉了某1笔或几笔.* 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?* 如果有多种可能,则输出所有可能的情况.* 我们规定:用 ...
- 金额查错:某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔, 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?
/** 某财务部门结账时发现总金额不对头.很可能是从明细上漏掉了某1笔或几笔. * 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗? * 如果有多种可能,则输出所有可能的情况. * 我们规 ...
- 金额查错—某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔
题目描述: 某财务部门结账时发现总金额不对头.很可能是从明细上漏掉了某1笔或几笔. 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗? 如果有多种可能,则输出所有可能的情况. 我们规定:用户 ...
- 发现了一个很好用的电脑上用电脑控制安卓手机的软件
2019独角兽企业重金招聘Python工程师标准>>> 发现了一个很好用的电脑上用电脑控制安卓手机的软件scrcpy, 还是开源的 地址: https://github.com/Ge ...
- 你有结账时发现太贵的尴尬吗?
请女朋友爸妈吃饭,他们专挑贵的点,吃完饭我就提出了分手. 先别急着喷我小气,事情是这样的: 前阵子女朋友跟我说,她爸妈知道女儿恋爱了,想见我,请我吃个饭. 我也不是扭扭捏捏的人,就赴约了.订在一个比较 ...
- 结账时提示:不能在对象 't_Balance' 中插入重复键
用户在使用金蝶专业版财务期末结账时提示: 错误代码:3631(E2FH) Source :Microsoft OLE DB Provider for SQL ServerDetail :违反了 PRI ...
- 财务部门:你需要多长时间才能够回答老板的这些问题?
企业经营管理中,对管理决策者来说,有许多问题是希望随时都知道的,下面,我们一起来探讨一下,这些常见的问题,我们怎么来快速回答. 首先,我们来回答以下几个问题:注:这几个问题都可以通过传统的资产负债表与 ...
- 财务部门:OKR 案例集
财务部门可以成为创始人.企业主和首席执行官的最大盟友,财务部门必须评估和衡量整个公司的支出.收入和现金流.因此,他们也必须负责分析各个部门的财务健康状况. 对于财务部门来说,准确的记录保存也是一个极其 ...
- 如何锁门_保安巡查时发现住户未锁门,应该怎么办?记住这九点!
保安巡查时发现住户未锁门,应该怎么办? 一 在巡查时发现有住户未锁单元门的情况,须立即给予确认. 二 巡查人员应首先确认住户的单元门锁有否遭到损毁和破坏,再确认住户单元内有无人在家.除遇可疑情况外,确 ...
最新文章
- Android机器人电池插件源码
- 视频图像处理平台对比_情绪管理考勤机人脸识别原理与指纹识别性能对比-微幼科技...
- 查看selenium python的api小记录
- Laravel核心解读 -- 扩展用户认证系统
- linux centos 6.3 下载,CentOS 6.3发布 附ISO下载地址
- [Flash开发笔记] List控件--删除指定label或data的项
- 和画意思相近的字_画字五行属什么,画字在名字里的含义,画字起名的寓意_卜易居起名字典...
- 大学四年,各阶段学习书籍推荐(少走弯路必备)
- MAVEN setting.xml配置文件详解
- Android之录制歌曲
- 找老域名有没有什么好方法?
- 网站服务器无法打开ie,internet explorer无法打开站点怎么办
- 『UE4数字孪生』开发流程浅析(持续更新)
- 支付宝扫码支付模式平台介绍
- 梅森旋转算法原理c语言,梅森旋转素数算法(MT199937)c语言代码
- 【uniapp】悬浮球(floatball)全局组件——全局消息提醒功能
- 假作真时真亦假,无为有处有还无
- Solidity实现拍卖竞价,代码解析,著名代码文档出处
- 当访问文件时提示文件夹访问被拒绝怎么办
- 上手简单的专业麦克风,室内户外清晰录音,唯乐狗G3S体验