标题:[求助]关于对一道题目的理解和解题思路问题!
只看楼主
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
 问题点数:0 回复次数:17 
[求助]关于对一道题目的理解和解题思路问题!

小弟又遇到了问题 请大哥帮忙!
当拿到一道题目如 从1加到100求累加和问题 用循环做!其定义函数如下:
int sum ()
{
int sum =0,i;
for (i=1;i<=100;i++)
sum+=i;
return sum;
}

int sum()
{
int sum =1,i;
for (i=2;i<=100;i++)
sum+=i;
return sum;
}
两个算法都实现了从1到100累加和 请问2者的区别是 什么我一直理解不透啊?请各位帮忙
如果遇到了 用循环给这个t=1-1/(2*2)-1/(3*3)-...1/(m*m)定义一个函数的时候
是否也会有2种以上的做法啊请各位帮忙

搜索更多相关主题的帖子: sum 思路 int 
2007-08-02 08:36
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 

两个循环可以说是没有区别,只是第二个已经累加过1了(因为sum=1),因此从2开始,而第一个函数是从1一直加到100,未提前累加1(因为sum=0);
所以如果说有区别,那么还可以写出许多的:
int sum()
{
int sum =3,i;
for (i=3;i<=100;i++)
sum+=i;
return sum;
}
int sum()
{
int sum =6,i;
for (i=4;i<=100;i++)
sum+=i;
return sum;
}
.........
int sum()
{
int sum =5050,i;
for (i=101;i<=100;i++)
sum+=i;
return sum;
}


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-02 08:47
Biglon
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-2
得分:0 

同意

2007-08-02 09:05
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
得分:0 
哦 原来如此啊 谢谢大哥 也就是说sum =3 for (i=3;i<=100;i++)其实这里的3已经是从1+2加过了 后面的sum=6是因为1+2+3=6加过了
那大哥看我关于下一题的解答:
float Y()
{
int i,float t=1.0;
for (i=2;i<m;i++)
t=t-(1/(i*i));
return t;
}
这时候好像不能给i赋其他的值了。。因为这里1-。。。是个减法!!!t=1-1/(2*2)-1/(3*3)-...1/(m*m);我又糊涂了

[此贴子已经被作者于2007-8-2 9:12:44编辑过]


我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-02 09:06
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
回楼上
例如:
float t()
{
int i,t=0.75;
for (i=3;i<m;i++)
t=t-(1/(i*i));
return t;
}

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-02 09:13
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
得分:0 
不明白啊 题目要求是给t=1-1/(2*2)-1/(3*3)-...1/(m*m);编写函数。
float t()
{
int i,t=0.75;
for (i=3;i<m;i++)
t=t-(1/(i*i));
return t;
}
好像从0.75减了吧。我 再想想看

我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-02 09:23
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
得分:0 
把1-1/(2*2)先算完,从1/(3*3)开始算

My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2007-08-02 09:24
Biglon
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2007-8-2
得分:0 

我这代码答案怎么老是0啊??

是关于上面  t=1-1/(2*2)-1/(3*3)-...1/(m*m) 的代码~~ 




/* Note:Your choice is C IDE */
#include "stdio.h"
float anwser=1.0 ;
int m,i ;
float func1 ( int x );


main()
{
printf ("please input a integer \n");
scanf ("%d",&m);
for (i=1 ;i<=m;i++) anwser -= func1 (i);
printf ("The anwser is %f\n",anwser);

}


float func1 (int x )

{

float h;
h = 1 / (x*x) ;
return h ;

}

2007-08-02 09:27
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
得分:0 
啊 呀! 对对 这会终于搞懂了 那也可以 先算1-1/(2*2)-1/(3*3)后再定义i 和t了 哎 数学没学好啊 哈哈 谢谢大哥

我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-02 09:27
小鸟黑黑
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2007-7-25
得分:0 
回复:(Biglon)我这代码答案怎么老是0啊??是关于...
wa!大哥真是热心啊!!谢谢啊 我 觉得结果不重要  重要的是解题思路啊  谢谢你

我讨厌别人叫我菜鸟,不过我的确很菜。。。
2007-08-02 09:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-159809-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.605674 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved