社区
C#
帖子详情
为什么输出的只有5
wsxqaz
2005-12-30 06:44:33
下面为什么输出的只有5
private int a(int i)
{
int c=0;
if(i==0)
{
c=0;
return 0;
}
else
{
textbox1.text=textbox1.text+a(i-1));
return i;
}
}
private void b()
{
a(5);
}
...全文
188
17
打赏
收藏
为什么输出的只有5
下面为什么输出的只有5 private int a(int i) { int c=0; if(i==0) { c=0; return 0; } else { textbox1.text=textbox1.text+a(i-1)); return i; } } private void b() { a(5); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yuanreid
2005-12-31
打赏
举报
回复
看看我的程序,结果还是4
namespace WindowsApplication1
{
public partial class Form1 : Form
{
public int x =0;
private int a(int i)
{
if(i==0)
{
return 0;
}
else
{
x = x + a(i - 1);
return i;
}
}
private void b()
{
a(5);
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
b();
textbox1.Text = x.ToString();
}
}
}
wsxqaz
2005-12-31
打赏
举报
回复
名白了我用Arraylist在每一次递归时Add一个这个时候arraylist里到是有各个值的
止戈而立
2005-12-31
打赏
举报
回复
当你执行a(5)的时候。。
那么:
textbox1.text=textbox1.text+a(i-1);实际上就是:
textbox1.text=textbox1.text+a(4);现在不知道你看懂了没有?无论你在计算a(4)的过程中,i怎么变。最终要 求的是a(4)的值。。
对比一下上面的朋友给你改后的代码吧:
winterice(冬天的冰)
else
{
textbox1.text=textbox1.text+a(i-1));
return i;
}
改成:
else
{
int d=a(i-1);
textbox1.text=textbox1.text+d;//
return i;
}
就输出“01234”了
wsxqaz
2005-12-31
打赏
举报
回复
我没有看懂为什么textbox1.text=textbox1.text+a(i-1)等于textbox1.text=a(i-1),虽然a(i)反回的是一个整型,但是textbox却可以保存字符,而且textbox在每一次帝归的时候都被付过值了,但是在下一次的时候textbox又恢复原来的值了
止戈而立
2005-12-31
打赏
举报
回复
我说过了:textbox1.text=textbox1.text+a(i-1);这一句相当于textbox1.text=a(i-1);
随着i的变化,a(i-1)的值当然会跟着变了。。
wsxqaz
2005-12-31
打赏
举报
回复
我跟了一下发现,每一次递归调用以后,textbox1.text里的值都在变,也就是textbox1.text=a(i-1)的值,比如i=1时textbox1.text=1(textbox.text确实被付值了)但是这个值并没有被保存下去,在跳到下一个递归的地方时值并没有相加,而是从新给textbox付值了,大家跟跟看,每一次递归调用以后好象textbox里是用值的
止戈而立
2005-12-31
打赏
举报
回复
另外提一句:
textbox1.text的结果为什么只输出了一个4。。而没有在多次执行该行代码后获得很多的值。。
这是因为
a(i-1)只返回最终的一个值。。放在哪里它都返回一个整型值。。不会有其它。。
因此textbox1.text如果原本是空字符串,那么textbox1.text=textbox1.text+a(i-1);这一句相当于textbox1.text=a(i-1);
dwp008
2005-12-31
打赏
举报
回复
min_jie(止戈)
调试了一下,终于看明白了。。
首先i的值从5一步步自减到0,算出了a(0)的值。。
然后又从0一步步自增到5,算出a(5)的值。。。
大家可以自己调试看看。。
这个是正解
递归都这样啊
winterice(冬天的冰) 说的方法正好可以反映出最后递归的顺序
止戈而立
2005-12-31
打赏
举报
回复
帮你分析一下代码:
private int a(int i)
{
int c=0;//这个变量没意义
if(i==0)
{
c=0;//没意义
return 0;//这表示a(0)=0
}
else
{
textbox1.text=textbox1.text+a(i-1);//这一句跟返回值没什么关系,也可暂时不看
return i;//这个表示a(i)=i,不要受上一句的影响,返回值跟上一句无关。a(5)当然等于5
}
}
当然,textbox1.text最后的值是4。因为a(i-1)=a(4)=4
止戈而立
2005-12-31
打赏
举报
回复
调试了一下,终于看明白了。。
首先i的值从5一步步自减到0,算出了a(0)的值。。
然后又从0一步步自增到5,算出a(5)的值。。。
大家可以自己调试看看。。
winterice
2005-12-31
打赏
举报
回复
应该输出4,把那代码
else
{
textbox1.text=textbox1.text+a(i-1));
return i;
}
改成:
else
{
int d=a(i-1);
textbox1.text=textbox1.text+d
return i;
}
就输出“01234”了
wsxqaz
2005-12-30
打赏
举报
回复
应该是4
我不管是字符连接还是相加反正都不应该输出一个数啊
就算是字符连接也应该是123……
net_explorer
2005-12-30
打赏
举报
回复
问题在于他用的是字符型的和整形的相加了.这样的话,就是字符串之间的连接了.
yuanreid
2005-12-30
打赏
举报
回复
to ChengKing(Enthusiasm Bigrosoft)
你运行试试吧
yuanreid
2005-12-30
打赏
举报
回复
用C++试了试,结果是对的返回10。即 0+1+2+3+4 = 10
而用C#跟踪了一下,发现是 0+1+1+1+1 = 4
确实不解。
ChengKing
2005-12-30
打赏
举报
回复
a()方法第一次执行的时候,这句: return i; 就执行了,且返回了:5
中间虽然进行了许多递归调用,但根本不影响最终结果: 5
yuanreid
2005-12-30
打赏
举报
回复
我输出的是4
(转)定义数据类型为double,
输出
时也是double型
输出
,为什么小数点后位数只有六位?
定义数据类型为double,
输出
时也是double型
输出
,为什么小数点后位数只有六位?
智能电视只有数字音频
输出
,传统音响只有模拟音频输入,音频连接解决方案!
如果电视机有光纤
输出
的,就用光纤音频线的一头连接电视的光纤音频
输出
接口,另一头则连接音频转换器的光纤音频输入接口。以上就是我为大家介绍的如何将智能电视的数字音频
输出
接入传统只有模拟音频输入的音响的方法。02. 一根3.5mm音频转红白RCA(莲花接口)的音频线,用于连接音频转换器的3.5mm模拟音频
输出
接口和音响的模拟音频输入接口或者用一根双头红白莲花头音频线连接。02. 将3.5mm音频转红白RCA音频线的一端插入转换器的3.5mm模拟音频
输出
接口,另一端分别插入音响的左右声道模拟音频输入接口。
tensorflow softmax
输出
只有0或1
原 tensorflow softmax
输出
只有0或1 2017年12月07日 11:21:52 HaHa_33 阅读数:1658 softm...
想请教一下大佬们,单片机
输出
高电平5V,为什么接上L298N之后
输出
会被拉低到2.2V
我使用的单片机是STC15W408AS(DIP16的),使用CH340G接电脑供电,VCC=5V,程序里将P32置高,不接L298N的时候
输出
正常,但是接上之后
输出
就被拉低到2.2V了,然后L298N的
输出
就没有了,使能端和IN4的输入都没有问题,单片机的引脚也换着试过了,只有置高的那个引脚电压会被拉低,我搞不清楚是什么原因了,恳请大佬们帮帮孩子吧。 ...
STM32里面说的推挽
输出
推挽
输出
是指既可以
输出
低电平,也可以
输出
高电平,可以直接驱动功耗不大的数字器件。 推挽电路是由两个三极管或MOSFET,以推挽方式存在于电路中,电路工作时,两只对称的开关管每次只有一个导通,所以导通损耗小、效率高、既提高电路的负载能力,又提高开关速度。 当内部
输出
1电平时,上边的MOS管导通同时下边的MOS管截至,IO口
输出
高电平。 当内部
输出
0电平时,上边的MOS管截至同时下边的MOS管导通,IO口
输出
低电平。 解释2: 从逻辑上来说和继电器
输出
没什么区别,就是
输出
低电平...
C#
111,131
社区成员
642,542
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章