a =1, b=5라고하면
(1) + (1*2) + (1*2*3) + (1*2*3*4) + (1*2*3*4*5) = ?
scanf써서 제가 두 개의 수를 입력했을 때 위와 같은 식의 값을 구하는 프로그램을 만드려고 합니다.
#include <stdio.h>
int Factorial(int n);
int main(void)
{
int i, j;
int sum=0;
printf("문제. 서로 다른 두개의 자연수 a, b를 입력하였을 때,\n");
printf(" (a) + (a*(a+1)) + (a*(a+1)*(a+2)) + ... + (a+(a+1)*...*b)의 값은? \n\n\n");
printf(" 서로 다른 두 개의 자연수를 입력하시오 : ");
scanf("%d", &i);
scanf("%d", &j);
for( i,j ; i<=0 || j<=0 || i==j ; )
{
printf(" 문제에 적합한 두 개의 수를 다시 입력하시오 : ");
scanf("%d", &i);
scanf("%d", &j);
if (i>0 && j>0 && !i==j)
break;
}
if(i<j)
{
for( ; i<=j ; i++)
{
sum += Factorial(i);
}
printf(" 결과는 %d 입니다. \n\n\n", sum);
}
else
{
for( ; j<=i ; j++)
{
sum += Factorial(j);
}
printf(" 결과는 %d입니다. \n\n\n", sum);
}
return 0;
}
int Factorial(int n)
{
int result=1;
int k;
for(k=1 ; k<=n ; k++)
{
result *=k;
}
return result;
}
이렇게 만들어놨는데 제가 원하는 건 두 개의 수를 입력했을 때 결과값만 딱 나오는게 아니라
(1) + (1*2) + (1*2*3) + (1*2*3*4) + (1*2*3*4*5) = 153
이렇게 나오게 하고 싶어요. 도와주세요.