程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 越界-階乘問題,菜鳥求幫助,用c或java都可以

越界-階乘問題,菜鳥求幫助,用c或java都可以

編輯:編程綜合問答
階乘問題,菜鳥求幫助,用c或java都可以

輸入數n;
將n!末尾的0去掉。再取最後9位。
把最後9位前面的0去掉;(把9位當做一個數,去掉無效的0)
輸出得出的數;
n最大到10000000
比如輸入38 輸出 742912

最佳回答:


樓上的代碼思路沒有問題,有點小bug,修改之後如下:
int foo(int n)
{
long r = 1;
int i;

for (i = 2; i <= n; i++)
{
    r = r * i;
    while (r % 10 == 0) r /= 10;
    r = r % 1000000000;
}
return r;

}

int main()
{
printf("%d\n", foo(38));
}

n=38時,結果為742912

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved