当前位置: 代码迷 >> C语言 >> [讨论]]第十四期编程题目
  详细解决方案

[讨论]]第十四期编程题目

热度:190   发布时间:2007-05-11 17:46:13.0
//订正一个低级错误
//第二道题的编程(代码已优化,速度加快了)
#include <stdio.h>
long fun(int a,int b,int c)
{ if(a==0&&b==0&&c==0)
//原先if(a*b*c==0)是错误的,导致n取奇数时居然也有“解”
return 1;
else if(a<0||b<0||c<0)
return 0;
else if(a==b&&b==c)
return 2*fun(a-2,b-1,c-1)+fun(a-2,b-2,c-2);
else if(a<b&&b==c)
return fun(a,b-1,c-1)+fun(a-2,b-2,c-2);
else return 0;
}
main( )
{
int n;
while(1){
scanf("%d",&n);
if(n<0)break;
printf("%ld\n",fun(n,n,n));}
}

偶的英语太烂,不堪出题大任。但仍谢谢斑竹
----------------解决方案--------------------------------------------------------
回复:(Javal)3 22 1 403 3 4 83 2 // 这里应该是 ...

思路很正确!!
答案应该没有什么问题.

[此贴子已经被作者于2007-5-11 18:13:22编辑过]


----------------解决方案--------------------------------------------------------
  相关解决方案