NYOJ 28 대수 곱 하기 (C 언어)

2257 단어 대수
제목: NYOJ 28 대수 곱 하기
자바 쓰 는 것 을 막 배 웠 는데 자바 로 써 서 정말 편리 하 다.
2018.5.3
첫 번 째 큰 숫자 를 쓴 문 제 는 처음에 손 댈 수가 없 었 습 니 다. 주로 방금 접 했 습 니 다. 연습 을 많이 해 야 합 니 다. 화 이 팅 하 세 요!사고: 배열 을 이용 하여 필산 과정 을 모 의 한다.
#include 
#include 
#include 
#define N 20000     
int a[N];
int main()
{
    int n,i,j,t,k;
    while(scanf("%d",&n)!=EOF)
    {
        memset(a,0,sizeof(a));
        a[0]=1;    //a[0]必须为1 
        for(i=2;i<=n;i++)
        {
            for(j=0,t=0;j//求i的阶乘
            {
                k=a[j]*i+t;    //(i-1)!的每一位数与i的乘积,t为来自低位的进位 
                a[j]=k%10;      
                t=k/10;        //t为向高位的进位 
            }
        }
        for(i=N;!a[i];i--);    //去除大数高位的0 

        while(i)    //输出除了个位的其他位 
        {
            printf("%d",a[i]);
            i--;
        }
        printf("%d
"
,a[0]);//输出个位 } return 0; }

좋은 웹페이지 즐겨찾기