陣列實現int隨機數的階乘(避免大數問題)

2022-05-28 16:09:12 字數 664 閱讀 4744

面試的一道題目,實現int隨機數的階乘。這道題就是考察你考沒考慮大數問題,如何避免它。 我能想到的就是用陣列去實現,然後寫了一下**。但是當i的值很大,接近max_value時的情況還沒有考慮到。

直接看**:mul進行陣列每一位的階乘,carry()用來對陣列的每一位進製,pos記錄當前的陣列有效位置。這道題還是用arraylist寫比較好,免得浪費空間(有空在更新)。

public

class

bignummul

}class

solutionbignummul

pos=carry(res,pos);//

把陣列從index=0~pos-1,進製,然後更新pos的值。

} stringbuffer sb=new stringbuffer();//

用乙個stringbuffer來顯示大數

for(int i=pos-1;i>=0;i--)

system.out.println(sb.tostring());

}public

int carry(int res,int

pos)

else

if(res[i]>9&&i)

else}}

return

i; }

}

實現隨機數

func seed seed int64 該函式設定隨機種子,若不呼叫此函式設定隨機種子,則預設的種子值為1,由於隨機演算法是固定的,如果每次都以1作為隨機種子開始產生隨機數,則結果都是一樣的,因此一般都需要呼叫此函式來設定隨機種子,通常的做法是以當前時間作為隨機種子,以保證每次隨機種子都不同,從而...

例子 隨機數 不重複的隨機數

以隨機數是js數學物件的方法之一。math.random 0 1的隨機數這樣使用的範圍就比較小,所以如果想用這個api獲得其它範圍的隨機數的話,就需要使用下面這種 math.random b a 1 a 以上這種寫法是獲取a b的隨機數的寫法,比如想要50 100的隨機數,就應該是 math.ran...

php實現 明明的隨機數

asort 對陣列進行排序並保持索引關係 trim fgets stdin while count trim fgets stdin 題目描述 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了n個1到1000之間的隨機整數 n 1000 對於其中重複的數字,只保留乙個...