浏览 1091 次
锁定老帖子 主题:国际软件大赛-平方数问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2013-04-17
// //若干不同的数字,排列组合后能产生多少个平方数? //下面的代码解决了这个问题。 //对于:1,6,9 //排列后,可产生3个平方数: //169 //196 //961 public class My { public static void f(int[] a, int n) { if(n==a.length-1) { int k = 0; //a : 1 9 6 for(int i=0; i<a.length; i++){ k =10*k+a[i]; } int m = (int)(Math.sqrt(k)+0.5); if(m*m==k) { System.out.println(k); } return; } for(int i=n; i<a.length; i++) { int t = a[n]; a[n] = a[i]; a[i] = t; f(a, n+1); t = a[n]; a[n] = a[i]; a[i] = t; } } public static void main(String[] args) { int[] a = {1,9,6}; f(a, 0); } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |