回覆列表
  • 1 # 使用者3916807372217

    C語言利用陣列計算超大整數的階乘程式碼

    #include

    int main()

    {

    int n;

    int a[9000]; //確保儲存最終運算結果的陣列足夠大

    int digit = 1; //位數

    int temp; //階乘的任一元素與臨時結果的某位的乘積結果

    int i, j, carry; //carry:進位

    printf("please in put n:\n");

    scanf("%d",&n);

    a[0] = 1; //將結果先初始化為1

    for ( i=2; i

    { //按最基本的乘法運算思想來考慮,將臨時結果的每位與階乘元素相乘

    for( j=1, carry=0; j

    {

    temp = a[j-1] * i + carry; //相應階乘中的一項與當前所得臨時結果的某位相乘(加上進位)

    a[j-1] = temp % 10; //更新臨時結果的位上資訊

    carry = temp / 10; //看是否有進位

    }

    while(carry)

    { //如果有進位

    a[++digit-1] = carry % 10; //新加一位,新增資訊。位數增1

    carry = carry / 10; //看還能不能進位

    }

    }

    printf("n ! = "); //顯示結果

    for(j = digit; j >=1;j--)

    {

    printf("%d",a[j-1]);

    }

    printf("\n");

    return 0;

    }

    #include

  • 中秋節和大豐收的關聯?
  • 怎麼識別網戀物件是不是深處傳銷?