//可以正常运行,我的这个方法是总结规律得出的,另外你也可以使用循环的方法,但是那个太费运算空间,效率太低了,如果你仅仅是求1-100,那么可以直接使用部分函数就可以的(把n换成100,把判断n的语句直接使用else后面的)
#include <iostream>
using namespace std;
int main()
{
int sum,n;
cout<<"求1-n的奇数和.请输入末尾数n(n>1):";
cin>>n;
if(n<1)
{
cout<<"输入错误。程序终止。"<<endl;
exit(1);
}
else
{//此处没有用递归或循环的方法,只是使用推导出的公式运算。
//如:1,2,3,4,5,这几个数字:sun=1+3+5 =3*(3)
//如:1,2,3,4,5,6 这几个数字:sum+1+3+5 =3*(3)
//两者(3)有个相似之处,可以有n即5或6求出,而前面的那个3则有1/5求出
//如果n为奇数
if(n%2!=0)
{
sum=(1+n)/2*(n+1)/2;
}
else
{
sum=(n/2)*(n/2);
}
}
cout<<"1-"<<n<<"的奇数和:"<<sum<<endl;
return 0;
}
温馨提示:答案为网友推荐,仅供参考