论坛首页 综合技术论坛

国际软件大赛-平方数问题

浏览 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);
	}
}
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics