分治法找假币
来源:互联网 发布:spss mac 23 序列号 编辑:程序博客网 时间:2024/05/27 00:47
package changyongsuanfa;import java.util.Scanner;public class JiaBi {public static int FalseCoin(int coin[],int low,int high){int result,i,sum1,sum2,sum3;result = 0;sum1 = sum2 = sum3 = 0;if(high - low == 1){if(coin[low] > coin[high]){result = high;return result;}else{result = low;return result;}}else{if((high - low + 1) % 2 == 0){//查找的个数为偶数个for(i=low;i<=low+(high-low)/2;i++){//计算前半段之和sum1 = sum1 + coin[i];}for(i=low+(high-low)/2+1;i<=high;i++){//计算后半段之和sum2 = sum2 + coin[i];}if(sum1 > sum2){result = FalseCoin(coin,low+(high-low)/2+1,high);//递归调用return result;}else if(sum2 > sum1){result = FalseCoin(coin,low,low+(high-low)/2);//递归调用return result;}}else{//查找的个数为奇数个for(i=low;i<=low+(high-low)/2-1;i++){//计算前半段之和sum1 = sum1 + coin[i];}for(i=low+(high-low)/2+1;i<=high;i++){//计算后半段之和sum2 = sum2 + coin[i];}sum3 = coin[low+(high-low)/2];//奇数个时,中间那个银币的重量if(sum1 > sum2){result = FalseCoin(coin,low+(high-low)/2+1,high);//递归调用return result;}else if(sum2 > sum1) {result = FalseCoin(coin,low,low+(high-low)/2-1);//递归调用return result;}if((sum1+sum3) == (sum2+sum3)){//假币为中间那个银币result = low+(high-low)/2;return result;}}}return result;}public static void main(String[] args) {int weizhi;System.out.print("分治法找假币\n");System.out.print("请输入银币的总数量:\n");Scanner input = new Scanner(System.in);int n = input.nextInt();int coin[] = new int[n];System.out.print("请输入银币的真假\n");for(int i=0;i<n;i++){coin[i] = input.nextInt();}input.close();weizhi = FalseCoin(coin,0,n-1)+1;System.out.printf("在%d个银币中,第%d个是假币",n,weizhi);}}
0 0
- 分治法找假币
- 分治法找假币
- 找假币
- 找假币wenti
- 找假币算法
- 3_寻找假币问题(分治法)
- 分治法找最大值最小值
- 纯C语言:分治假币问题源码
- 复习C++--分治算法--找出假币
- 分治算法经典例题 寻找假币
- 找中位数问题——分治法
- 面试:称硬币找假币的问题
- 【两个智力题】金币测重量,找假币
- 浙工大15新生决赛 找假币
- POJ 1029 False coin 找假币 模拟
- 假币
- 分治法实例-找下标,下标与对应值相等
- (2013.05.05)N枚硬币找1枚假币
- Apache Mina
- without active transaction
- 【ssh2学习记录】1、struts2框架入门
- C 语言程序设计实践 传说中的 X
- LeetCode-Integer to Roman
- 分治法找假币
- java cache 学习记录之二
- hihoCoder 1121 二部图判定
- 百度面试题——用C语言实现函数void * memmove(void *dest,const void *src,size_t n)
- 程序设计实践阅读摘要[一]
- FZU 2188 BFS
- java基础、矩阵乘法
- 行为型模式总结
- 循环数组求最大子段和系列------方法2