hdoj-2058-the sum problem
accept 코드:
#include<stdio.h>
#include<math.h>//(a+b)*n/2
int main()
{
int n,i,j,m;
int t=0,sum=0;
int k=0,a,b;
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0 && m==0)break;
for(i=sqrt(2*m);i>0;i--)
{
a=m/i-(i-1)/2;//b-a+1=i, b=a+i-1, M i( ) a。
if((a+a+i-1)*i==2*m)// ,
{
printf("[%d,%d]
",a,a+i-1);
}
}
/*for(k=i;k<=m;k++)
{
sum+=k;
if(sum>m)break;
if(sum==m)
{
printf("[%d,%d]
",i,k);
break;
}
}
sum=0;*/
printf("
");
}
return 0;
}
처음에 폭력을 시도했을 때 두 개의 for순환을 사용했는데 과연 T가 아니었다. 사실 이 물문제는 누적과 빠른 계산에 주목할 만한 부분이다.고등학교 수학을 1년 가까이 멀리한 나는 등차수열의 공식을 자연히 잊어버렸다.이런 유형의 문제를 해결하려면 일정한 수학적 기초가 필요하다.내 이전 블로그 a1=?,이 문제보다 훨씬 복잡하다.이 문제와 유사하게 시간을 절약하기 위해 디자인된 문제도 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.