主题:有规律求和程序怎样编写??看看高手怎样编写的??
773950918
[专家分:0] 发布于 2010-06-02 22:45:00
有规律求和程序怎样编写??看看高手怎样编写的??
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个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-06-03 07:48:00
思路就是利用循环不变式,每次改变加数一个一个加上去,代码的话,直接baidu就应该搞定了。这种简单代码,高手跟普通人的代码其实相差也不会太大,也就是可读性的差别。不过对于lz的附加要求,用函数还能理解,用指针就有点扯了……这代码实在没什么必要用指针……
板凳
alweeq86 [专家分:1170] 发布于 2010-06-03 09:03:00
用2个循环就可以解决,外部循环记录+/-号的个数count,内部循环写出count个+然后count数-
3 楼
773950918 [专家分:0] 发布于 2010-06-03 21:05:00
不懂!两个循环就能搞定??
4 楼
雪光风剑 [专家分:27190] 发布于 2010-06-03 21:09:00
单循环+判断就能搞定
5 楼
773950918 [专家分:0] 发布于 2010-06-03 21:16:00
小生愚昧!!请大虾出手写写看看!!
6 楼
773950918 [专家分:0] 发布于 2010-06-03 21:18:00
要用户输入n!!
7 楼
雪光风剑 [专家分:27190] 发布于 2010-06-03 21:34:00
给出半伪代码,看得懂就看,看不懂就算
sum<-0求和变量
round<-0,now<-0,f<-1依次是这轮的符号总数,目前已经经历的符号数,和符号位
输入n
for i<-1 to n
now+1
if now和round相等
如果f为正
f<- -1,now<-0
否则
f<- 1,now<-0,round+1
sum+符号位*i
输出n
8 楼
773950918 [专家分:0] 发布于 2010-06-05 01:41:00
#include<iostream>
using namespace std;
int main()
{int n,sum=0;
cin>>n;int j=1;
cout<<"0";
for(int i=1;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;
}
9 楼
773950918 [专家分:0] 发布于 2010-06-05 01:42:00
高手简化它??
10 楼
773950918 [专家分:0] 发布于 2010-06-05 01:55:00
#include<iostream>
using namespace std;
int main()
{int n,sum=0;
cin>>n;int j=1;
for(int i=1;i<=n;j++)
{
int c=j;
cout<<"0";
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;
}
我来回复