发布网友
共4个回答
热心网友
一、算法分析:
要计算a b之间所有奇数和,那么最朴素的算法可以设计如下:
1、输入a,b值;
2、循环遍历a b之间的所有数值,如果为奇数,则累加;
3、输出结果。
二、算法优化:
1、由于连续奇数之间差值为2,所以可以判断出第一个奇数,然后依次加2得到所有奇数,将所有奇数累加即可。
2、连续奇数属于等差数列,所以可以利用等差数列求和公式,更快捷的得到结果。
三、参考代码:
1、原始算法代码:
#include <stdio.h>2、优化算法1:
3、优化算法2:
热心网友
你这是C++,不是C。
#include <stdio.h>
热心网友
它有说a<=b吗?如果ab相差很大,会超时吗?
得了多少分,评测结果具体是什么,都粘出来,方便我们查错。追问
它有说a<=b吗?如果ab相差很大,会超时吗? 这个很有可能
得了多少分,评测结果具体是什么,都粘出来,方便我们查错。
额,什么评测网站竟然不给分数。好像没有超时。我写了一段:
#include <iostream>等差数列求和公式:(首项+末项) * 项数 / 2
热心网友
可能是你的算法有问题, 其实可以完全用等差数列求和公式来算.追问公式是什么