回 帖 发 新 帖 刷新版面

主题:有规律求和程序怎样编写??看看高手怎样编写的??

有规律求和程序怎样编写??看看高手怎样编写的??
1+2-3+4+5-6-7+8+9+10-11-12-13+14+15+16-17-18-19-20+..............是有规律的?看看程序怎样编写??

#include <iostream>
using namespace std;
int main()
{




return 0;
}
编写哦!

用函数或指针哦!!

回复列表 (共22个回复)

11 楼

违背题意了,题意里第一个数是1,你这里第一个数成0了

12 楼

#include<iostream>
using namespace std;
int main()
{int n,sum=1;
cin>>n;int j=1;int k=1;
cout<<k;
for(int i=2;i<=n;j++)
{
int c=j;
for(;c>0;c--)
{
if(i>n)
break;
cout<<"+"<<i;
    sum=sum+i;
i++;
}
c=j;
for(;c>0;c--)
{if(i>n)
break;
sum=sum-i;
cout<<"-"<<i;
i++;
}
}
cout<<"="<<sum<<endl;
return 0;


}

13 楼

一眼看上去也能实现目的,我想的比这个简单,呵呵

14 楼

还要努力!谢谢!

15 楼

main()
{
 int a=1,b=1,i=2,sum=1;
 while(i<=20)
    {
     if(b<=(2+(a-1)*2)/2)
        {
         sum+=i;
         b++;
         i++;

         printf("%d,%d\n",sum,b);
        }
     else
        {
         sum-=i;
         b++;
         i++;

         printf("%d,%d\n",sum,b);
        }
     if(b>2+(a-1)*2)
        {
         a++;
         b=1;
         printf("b\n");
        }
    }
}
不知这样做对不

16 楼

fff

17 楼

我的想法是這樣的.
首先1不在規律里.

2-3=-1;

4-6=-2;
5-7=-2;

8-11=-3;
9-12=-3;
10-13=-3;
時間複雜度應該可以是O(n);
而且大概時間可能是O((n-1)/2);
如果你能想出一個數學公式來算的話,那你就做到極致了,因為只需常數時間.
例如算1+2+3... ,我想大家不會真的就逐個逐個加吧...

18 楼

[quote]我的想法是這樣的.
首先1不在規律里.

2-3=-1;

4-6=-2;
5-7=-2;

8-11=-3;
9-12=-3;
10-13=-3;
時間複雜度應該可以是O(n);
而且大概時間可能是O((n-1)/2);
如果你能想出一個數學公式來算的話,那你就做到極致了,因為只需常數時間.
例如算1+2+3... ,我想大家不會真的就逐個逐個加吧...[/quote]
在n比较大的时候,你仍然要计算一定的迭代。也许运行效率比较低,但是确实简单累加的代码容易想,而且简洁

19 楼

如果“+”和“-”个数比为1:1   那结果是:1-(1^2+2^2+3^2+4^2+......n^2)吧?n就是最后“+”或“-”的个数

20 楼


有的人喜歡簡潔,有的人喜歡高速度,而我暫時是比較喜歡高速度的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册