点击查看代码
#include<bits/stdc++.h>
#include<windows.h>
#define pt puts("")
#define swp if(a>b)swap(a,b)
#define cl system("cls")
using namespace std;
typedef unsigned long long ull;
ull Q1(ull x)
{
return (x+1)*x/2;
}
ull Q2(ull x)
{
return (x+2)*(x+1)*x/6;
}
ull Q4_(ull a)
{
ull sum=0;
for(unsigned i=1;i<a;++i)
{
sum+=Q1(i);
}
return sum;
}
void work()
{
int Q;
printf("cin>>Operator: ");
scanf("%d",&Q);
pt;
printf("Operator=%d\n",Q);
if(Q==0)
{
int x;
printf("cin>>x: ");
scanf("%d",&x);
printf("ans=%d\n",x);
}
if(Q==1)
{
int x;
printf("cin>>x: ");
scanf("%d",&x);
printf("ans=%lld\n",Q1(x));
}
if(Q==2)
{
int x;
printf("cin>>x: ");
scanf("%d",&x);
printf("ans=%lld\n",Q2(x));
}
if(Q==3)
{
int a,b;
printf("cin>>a>>b: ");
scanf("%d%d",&a,&b);
swp;
printf("ans=%lld\n",Q1(b)-Q1(a));
}
if(Q==4)
{
int a,b;
printf("cin>>a>>b: ");
scanf("%d%d",&a,&b);
swp;
printf("ans=%lld\n",Q2(b)-(b-a+1)*Q1(a-1)-Q4_(a));
}
system("pause");
cl;
}
int main()
{
puts("使用说明:");
puts("每次输入一个数为操作序号");
puts("操作1:输入x,求 1+2+3+4+...+x 的值");
puts("操作2:输入x,求 1+(1+2)+(1+2+3)+...(1+2+3+...+x) 的值");
puts("操作3:输入a,b,求 a+(a+1)+(a+2)+(a+3)+...+(b-1)+b 的值");
puts("操作4:输入a,b,求 a+(a+(a+1))+(a+(a+1)+(a+2))+...+(a+(a+1)+(a+2)+...+(b-1)+b) 的值");
puts("Understand?");
pt;
puts("YES O NO X");
char c;
cin>>c;
if(c=='X')
{
cl;
puts("对于操作4");
puts("例:输入 2,5");
puts("得到的结果是:2+2+3+2+3+4+2+3+4+5 =30");
puts("Understand?");
pt;
puts("YES O NO X");
char cc;
cin>>cc;
if(cc=='X') return 0;
else cl;
}
else cl;
while(1==1) work();
}