`
1140566087
  • 浏览: 559279 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18535
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:314152
Group-logo
J2ME 基础学习课程集
浏览量:18752
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17582
社区版块
存档分类
最新评论

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

阅读更多
//
//若干不同的数字,排列组合后能产生多少个平方数?
//下面的代码解决了这个问题。
//对于: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