C语言算法的问题
求1+2+3+...+99。算法一:第1步:开始。第2步:计算S=(1+99)÷2×99。第3步:输出S中的结果。第4步:结束。算法二:第1步:将1放在S中;第2步:计算...
求1+2+3+...+99。
算法一:第1步:开始。
第2步:计算S=(1+99)÷2×99。
第3步:输出S中的结果。
第4步:结束。
算法二:第1步:将1放在S中;
第2步:计算S+2,并保存在S中;
第3步:计算S+3,并保存在S中;
第4步:计算S+4,并保存在S中;
...
第99步:计算S+99,并保存在S中;
第100步:输出S中的结果。
第101步:结束。
算法三:第1步:将0放在S中;
第2步:将1放在N中;
第3步:将N加到S中;
第4步:将1加到N中;
第5步:判断。若N<100,转第3步;
否则,转第6步;
第6步:输出S中的结果,结束。
此三种算法前两步都能理解,只有第三步一点也不明白,哪位能给我解释明白,俺是初中毕业,解释的越详细越好(能让一个初中水平明白 )谢谢! 展开
算法一:第1步:开始。
第2步:计算S=(1+99)÷2×99。
第3步:输出S中的结果。
第4步:结束。
算法二:第1步:将1放在S中;
第2步:计算S+2,并保存在S中;
第3步:计算S+3,并保存在S中;
第4步:计算S+4,并保存在S中;
...
第99步:计算S+99,并保存在S中;
第100步:输出S中的结果。
第101步:结束。
算法三:第1步:将0放在S中;
第2步:将1放在N中;
第3步:将N加到S中;
第4步:将1加到N中;
第5步:判断。若N<100,转第3步;
否则,转第6步;
第6步:输出S中的结果,结束。
此三种算法前两步都能理解,只有第三步一点也不明白,哪位能给我解释明白,俺是初中毕业,解释的越详细越好(能让一个初中水平明白 )谢谢! 展开
6个回答
展开全部
算法1第三步:第二步是计算S,第三步是将S输出到电脑屏幕
算法2第三步:就是s=s+3具体就是将s自加3再存到S中
算法3的思想是建立两个变量N,S,N初始化为1,S初始化为0,S的作用是计算结果,N的作用是从1遍历到99.第二步是将N加1,就是将N从1取道99,第三步将N加给S,就是计算1-99的和。
算法2第三步:就是s=s+3具体就是将s自加3再存到S中
算法3的思想是建立两个变量N,S,N初始化为1,S初始化为0,S的作用是计算结果,N的作用是从1遍历到99.第二步是将N加1,就是将N从1取道99,第三步将N加给S,就是计算1-99的和。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
算法一:
用的是等差数列的求和公式,现在简单推导一下:
S = 1 + 2 + 3 + …… + n
S = n +(n-1)+ (n-2)+ …… + 1
相加得:
2*S = (n+1)+(n+1)+(n+1)+…… +(n+1)
得 s = (n+1)* n/ 2
算法二和算法三 都差不多,C语言实现如下
void sum(int N)
{
int S = 0;
int i;
for(i=1;i<N;i++)
S += i;
printf("%d",N);
}
用的是等差数列的求和公式,现在简单推导一下:
S = 1 + 2 + 3 + …… + n
S = n +(n-1)+ (n-2)+ …… + 1
相加得:
2*S = (n+1)+(n+1)+(n+1)+…… +(n+1)
得 s = (n+1)* n/ 2
算法二和算法三 都差不多,C语言实现如下
void sum(int N)
{
int S = 0;
int i;
for(i=1;i<N;i++)
S += i;
printf("%d",N);
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2和3不是一样的么。。。感觉是在忽悠。
算法三:第1步:将0放在S中; 《--------S用来存放结果
第2步:将1放在N中; 《--------N里面依次会放入1,2,3,4,5。。(刚开始是1)
第3步:将N加到S中; 《--------S = S+N
第4步:将1加到N中; 《--------N 现在自加了,每次加1
第5步:判断。若N<100,转第3步;《----加到99就退出循环。输出S
否则,转第6步;
第6步:输出S中的结果,结束。
算法三:第1步:将0放在S中; 《--------S用来存放结果
第2步:将1放在N中; 《--------N里面依次会放入1,2,3,4,5。。(刚开始是1)
第3步:将N加到S中; 《--------S = S+N
第4步:将1加到N中; 《--------N 现在自加了,每次加1
第5步:判断。若N<100,转第3步;《----加到99就退出循环。输出S
否则,转第6步;
第6步:输出S中的结果,结束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当n=1时s=s+n=0+1
1加n,n=1+1=2当n=2时 因为n<100所以转第3步s=s+n=0+1+2
1加n,n=2+1=3当n=3时 因为n<100所以转第3步s=s+n=0+1+2+3
.......................................
1加n,n=98+1=99当n=99时 因为n<100所以转第3步s=0+1+2+.........+99
1加n,n=99+1=100当n=100时 因为n不小于100所以转第6步
输出S=0+1+2+.........+99中的结果
1加n,n=1+1=2当n=2时 因为n<100所以转第3步s=s+n=0+1+2
1加n,n=2+1=3当n=3时 因为n<100所以转第3步s=s+n=0+1+2+3
.......................................
1加n,n=98+1=99当n=99时 因为n<100所以转第3步s=0+1+2+.........+99
1加n,n=99+1=100当n=100时 因为n不小于100所以转第6步
输出S=0+1+2+.........+99中的结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
N每次加1从1加到99,S每次加N,共加99次,不就是1+2+3+4+```+99吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询