递归调用问题

PublicGe 2010-10-07 05:35:58
//这个是在上面看到一个说0-9的3个数加3个数和等一个4位数的题的文章,不记得谁的博客了啊,现在只是做了一部分。
我现在执行到return ValueInt;
他怎么还会回到GetIntValue(ValueInt); 再把这个执行一遍呢。

我现在是要组合到9876543210然后返回,奇怪的是,到了这个数之后,他又会再招行一次GetIntValue(9876543200);
所以结果就不准确了,高手帮忙看看要怎么修改?

ArrayList FristAL = new ArrayList();
ArrayList MiddleAL = new ArrayList();
private Int64 GetIntValue(Int64 DefaultValue)//10个数字自由组合,递归调用
{
Int64 ValueInt = DefaultValue;
ArrayList GetIntAL = MiddleAL;


for (int i = GetIntAL.Count - 1; i >= 0; i--)
{
if ((i == 9 || i == 6 || i == 3) && (int)GetIntAL[i] == 0)//首位不为0
{
i--;
}
if (i > 0)
{
ValueInt = ValueInt + ((int)GetIntAL[i])*((Int64)(Math.Pow(10, i)));
MiddleAL.Remove(MiddleAL[i]);

}
if (GetIntAL.Count > 0&&!(GetIntAL.Count==1&&(int)GetIntAL[0]==0))//还有未用到的数字,调用,最后一位如果是0跳出
{
GetIntValue(ValueInt);
}

}

return ValueInt;
}
...全文
146 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
minghuar22 2010-10-08
  • 打赏
  • 举报
回复
是0-9两个三位数相加的和为四位数?我咋看不懂呢,是的话,有这么难吗,两个FOR就好了
PublicGe 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 minghuar22 的回复:]
是0-9两个三位数相加的和为四位数?我咋看不懂呢,是的话,有这么难吗,两个FOR就好了
[/Quote]
昨天博客园里面的贴子

xyz+abc=hjkl

字母子变量代表0-9

用for要用10个的吧?
PublicGe 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 cjh200102 的回复:]
??是研究递归还是研究这道题啊
[/Quote]
当然是研究递归
fangxiaofelix 2010-10-08
  • 打赏
  • 举报
回复
搞不清了!
cjh200102 2010-10-08
  • 打赏
  • 举报
回复
??是研究递归还是研究这道题啊
兔子-顾问 2010-10-07
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090217/21/f41ed9f6-f929-451c-a5c9-80d2e408422a.html?71673
troy2012 2010-10-07
  • 打赏
  • 举报
回复
题目是什么?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧