원래 머리가 좋진 않아서 그냥 연필이랑 계산기로 for문 몇번 반복해가면서
대충 감 잡고 코딩하는데요.
팩토리얼 이건 도대체 답이 안나오네요.
이부분 입니당. (소스는 블로그 어디선가 퍼왔는데 기억이 안나네요 ㅠㅠ...짤방은 해당 소스 출력시에 궁금한부분.)
---------------------------
for (k=1;k<=nn;k++){
int j;
j++;
lmul(s,k,s);
printf("\n");
printf("for문이 %d회 끝났음\n\n",j);
printresult(s);
}
void lmul(short a[],short b,short c[])
{
short i;
short d,cy=0;
for (i=L2-1;i>=0;i--){
d=a[i];
c[i]=(d*b+cy)%10000;
cy=(d*b+cy)/10000;
printf("c[%d]=%-2d*%-2d+%-2d = %2d\n",i,d,b,cy,(d*b+cy)%10000);
printf("d의값=%-2d b의값=%-2d cy의값=%-2d \n",d,b,cy);
}
}
void printresult(short c[]) {
short i;
for (i=0;i<L2;i++)
printf("%04d",c[i]);
printf("\n");
}
-----------------------------------------------
대충 어떤 식으로 저장/출력 되는진 여기저기 printf로 하나하나 찍어가면서 해보는뎅..
d=a[i];
c[i]=(d*b+cy)%10000;
cy=(d*b+cy)/10000;
이부분을 알수가 없네요..아으...특히 8! 이상 넘어가면 수식상으로 324가 나오는데
(첫번째 마지막 배열에)0320 저장 + (마지막 배열-1)0004 저장이 어떻게 되는질 모르겠어여..
올라가는 타이밍을 알고 싶은데...(수치해석 할때 머신 앱실론 찾을때 나오는것 처럼..)
그냥 저장시킨 배열 출력시켜봐도 걍 어느순간 지 멋대로 점프되어서 출력 결과만 나와버리네요.(짤방)
cy가 4가 됬을때 c[14]에 저장되는 타이밍을 출력을 몬하겠슴여 ㅠㅠㅠㅠㅠ아놔.....
지까이께 저장이 됬으니까 출력할때 튀어나올텐데...-_-;;;
하나하나 연필 굴려가면서 해봤는데 %연산이랑 /10000 땜에 이건 도저히..-.-;;;반복문이 너무 많아서 좀 무리가 있는듯..;;;;
힌트 좀 주실분 안계신가여...조공짤도 올렸슴메 ㅜㅜ..
아~ 저 가...가슴... 저걸... 저걸 그냥..
조공이 약하다
??무슨 말씀인지 이해가 안가네여...아...ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ 짤방은 제가 가진거 전연령 버전중에 제일 꼴릿한거예여 헤헤.
으으.....띠바이트횽이 준 소스랑 비교하면서 좀 더 봐야할거 같네여...단순히 %랑 / 뒤에 나오는 숫자가 너무 커서 더 이해하기 힘들었던건가 싶기도 하고...암튼 ㄳㄳ
이상한 소스 주서와서 분석하느니 직접짜는게 [핡]