设为首页 加入收藏

TOP

金额查错:某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔, 如果已知明细账目清单,能通过编程找到漏掉的(一)
2014-11-24 10:24:22 】 浏览:2653
Tags:金额 查错 财务 部门 结账 发现 对头 可能 是从 明细 漏掉 如果 已知 账目 清单 通过 编程 找到
 /* 
 * 某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。  
 * 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?  
 * 如果有多种可能,则输出所有可能的情况。  
 * 我们规定:用户输入的第一行是:有错的总金额。  
 * 接下来是一个整数n,表示下面将要输入的明细账目的条数。  
 * 再接下来是n行整数,分别表示每笔账目的金额。  
 *   
 * 要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列,中间用空格分开。  
 * 比如:  
 * 用户输入:  
6  
5  
3  
2  
4  
3  
1  
表明:有错的总金额是6;明细共有5笔。  
此时,程序应该输出:  
    1 3 3  
    1 2 4  
    3 4  
    为了方便,不妨假设所有的金额都是整数;每笔金额不超过1000,金额的明细条数不超过100。  

/*
 * 某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。
 * 如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?
 * 如果有多种可能,则输出所有可能的情况。
 * 我们规定:用户输入的第一行是:有错的总金额。
 * 接下来是一个整数n,表示下面将要输入的明细账目的条数。
 * 再接下来是n行整数,分别表示每笔账目的金额。
 * 
 * 要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列,中间用空格分开。
 * 比如:
 * 用户输入:
6
5
3
2
4
3
1
表明:有错的总金额是6;明细共有5笔。
此时,程序应该输出:
    1 3 3
    1 2 4
    3 4
    为了方便,不妨假设所有的金额都是整数;每笔金额不超过1000,金额的明细条数不超过100。 [java] view plaincopyprint */   
import java.util.ArrayList;   
import java.util.Arrays;   
import java.util.Iterator;   
import java.util.HashSet;   
import java.util.List;   
import java.util.Scanner;   
import java.util.Set;   
   
public class 金额查错 {   
    public static Set> sets = new HashSet>();    // 保存记录    
    public static boolean vis[]; 
    public static int b[]; 
    // 得到明细账目清单的总金额    
    public static int sum(int[] d){   
        int temp = 0;   
        for(int i=0;i lis = new ArrayList();   
            for(int i=0;i> iter = sets.iterator();   
        while(iter.hasNext()){   
            Iterator iter2 = iter.next().iterator();   
            while(iter2.hasNext()){   
                System.out.print(iter2.next()+" ");   
            }   
            System.out.println();   
        }   
    }   
    public static void main(String[] args){   
        Scanner scan = new Scanner(System.in);   
        int err = scan.nextInt();   
        int n = scan.nextInt(); 
        vis = new boolean[n]; 
        b = new int[n]; 
        int[] d = new int[n];   
        for(int i=0;i> sets = new LinkedHashSet>();    // 保存记录    
    // 得到漏掉的总金额    
    public static int sum(int[] d){   
        int leak = 0;   
        for(int i=0;i0;i--){   
            if(b[i]>1){   
                b[i] = 0;   
                b[i-1]++;   
            }   
        }   
    }   
    // 检测b是否全111111...    
    public static boolean check(int[] b){   
        boolean flag = true;   
        for(int i=0;i=0;i--){   
            if(b[i]!=0){   
                sum += d[i];   
            }   
        }   
        if(sum==le){   
            List lis = new ArrayList();   
            for(int i=0;i> iter = sets.iterator();   
        while(iter.hasNext()){   
            Iterator iter2 = iter.next().iterator();   
            while(iter2.hasNext()){   
                System.out.print(iter2.next()+" ");   
            }   
            System.out.println();   
        }   
    }   
    public static void main(String[] args){   
        Scanner scan = new Scanner(System.in);   
        int err = scan.nextInt();   
        int n = scan.nextInt();   
        int[] d = new int[n];   
        for(int i=0;i> sets = new HashSet>();    // 保存记录 
    public static boolean vis[];
    public static int b[];
    // 得到明细账目清单的总金额 
    public static int sum(int[] d){ 
        int temp = 0; 
        for(int i=0;i lis = new ArrayList(); 
            for(int i=0;i> iter = sets.iterator(); 
        while(iter.hasNext()){ 
            Iterator iter2 = iter.next().iterator(); 
            while(iter2.hasNext()){ 
                System.out.print(iter2.next()+" "); 
            } 
            System.out.println(); 
        } 
    } 
    public static void main(String[] args){ 
        Scanner scan = new Scanner(System.in); 
        int err = scan.nextInt(); 
        int n = scan.nextInt();
        vis = new boolean[n];
        b = new int[n];
        int[] d = new int[n]; 
        for(int i=0;i> sets = new LinkedHashSet>();    // 保存记录 
    // 得到漏掉的总金额 
    public static int sum(int[] d){ 
        int leak = 0; 
        for(int i=0;i0;i--){ 
            if(b[i]>1){ 
                b[i] = 0; 
                b[i-1]++; 
            } 
        } 
    } 
    // 检测b是否全111111... 
    public static boolean check(int[] b){ 
        boolean flag = true; 
        for(int i=0;i=0;i--){ 
            if(b[i]!=0){ 
                sum += d[i]; 
            } 
        } 
        if(sum==le){ 
            List lis = n
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Hadoop 类AggregateWordCount源代.. 下一篇HDFS Java开发

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目