三位数算法------精度不足导致判断错误
2016-04-15 11:08
423 查看
三位数算法
问题:1-9分成三组,组成3个三位数,有多少个三位数符合1:2:3?
求解思路:穷举所有排列组合,做判断。
代码:
第一次发生了判断错误,错误原因是int基本类型精度不足,错误如下:
后来换成了double基本数据类型,成功求解所有答案:
问题:1-9分成三组,组成3个三位数,有多少个三位数符合1:2:3?
求解思路:穷举所有排列组合,做判断。
代码:
package 三位数排列组合成比例; public class ThreePai { public int[] tre = new int[9]; public int count = 0; { for(int i = 0;i<tre.length;i++){ tre[i] = i+1; } } public static void main(String[] args) { ThreePai tp = new ThreePai(); tp.initMain(); } public void initMain(){ permutation(tre,0,tre.length); } public void permutation(int a[],int m,int n){ if( m < n - 1 ){ permutation(a,m+1,n); for(int i = m + 1;i < n;i++){ int t = a[m]; a[m] = a[i]; a[i] = t; permutation(a,m+1,n); t = a[m]; a[m] = a[i]; a[i] = t; } }else{ judge(a); } } public void judge(int[] a){ double one = a[0]*100 + a[1]*10 + a[2]; double two = a[3]*100 + a[4]*10 + a[5]; double three = a[6]*100 + a[7]*10 + a[8]; if( (two/one) == 2 && (three/one) == 3 ){ System.out.println((int)one+" "+(int)two+" "+(int)three); } } }
第一次发生了判断错误,错误原因是int基本类型精度不足,错误如下:
后来换成了double基本数据类型,成功求解所有答案:
相关文章推荐
- 记录下maven依赖范围和classpath的关系
- 项目开发准备20160415
- [CareerCup] 16.3 Dining Philosophers 哲学家聚餐问题
- 评论博客
- Linux 开启定时计划任务
- 关于APP,原生和H5开发技术的争论 APP开发技术选型判断依据
- 详解设计模式(三)
- scikit-learn学习3.1.交叉验证:评估估计器性能
- 微信开发踩坑从服务器配置开始
- 批量更新
- android如何实现悬浮窗口
- 作业调度——实验2
- Mark:Insert, Update, and Delete Destination table with SSIS
- 流形学习-高维数据的降维与可视化
- python界面小程序
- java基本类型
- 链表、二叉树为什么要给函数传入的头参数为指针的指针
- 记录 第一次体验安装python第三方库的全过程
- jQuery使用cookie与json简单实现购物车功能
- Retrofit使用一:超简单先用上