还是比人的算法
#include<stdio.h>
#include<math.h>
int main()
{
long long int m,n,a,b;
while(scanf("%lld %lld",&n,&m)!=EOF&&(n||m))
{
for(int i=sqrt(2*m);i>0;i--)//保证a1的值大于0
{
a=m/i-(i-1)/2;
if((2*a+i-1)*i==2*m)
{
b=a+i-1;
printf("[%lld,%lld]\n",a,b);
}
}
printf("\n");
}
return 0;
}
自己写的代码超时了,我几乎很少想节约资源的问题,更多的想解决问题就好,实际上这是不对的
#include<stdio.h>
int main()
{
long long n,m,sum=0;
long long i,j;
while(scanf("%lld %lld",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
{
sum=0;
for(j=i;j<=n;j++)
{
sum=j+sum;
if(sum==m)
{
printf("[");
printf("%lld",i);
printf(",");
printf("%lld",j);
printf("]");
printf("\n");
break;
}
}
}
printf("\n");
}
}