unsigned long long 자료형 오버플로우 해결하려면??
물
질문 제목 : unsigned long long 자료형 오버플로우 해결하려면??입력값이 10000일 때 -값이 나옵니다. 오버플로우 나는 것 같은데
어떻게 해결해야 할까요?
질문 내용 :
// assign_a2.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//#include stdafx.h
#include ctimeunsigned long long arr[10000]={0};unsigned long long a2(int n)
{
if(arr[n]!=0)
return arr[n];
else
{
if(n==0)
arr[n]=0;
else if(n==1)
arr[n]=2;
else if(n==2)
arr[n]=4;
else if(n==3)
arr[n]=6;
else
arr[n]=a2(n-1)+a2(n-2)+a2(n-3);
return arr[n];
}
}int _tmain(int argc, _tchar* argv[])
{
clock_t start_time, finish_time;
double time;
int input;
unsigned long long output;printf(input : );
scanf(%d, &input);start_time=clock();
output=a2(input);finish_time=clock();
printf(output : %llu\n, output);
time=(double)(finish_time-start_time);
printf(time : %f\n, time);return 0;
}