私は、ユーザが言及した特定の行にパスカル三角形の結果を出力するという問題を解決しました。intをunsigned long longにキャスト
https://leetcode.com/problems/pascals-triangle-ii/
私は巨大な階乗結果を格納する問題を持っていた私の解決策を書きました。これらの質問を経由で
vector<int> getRow(int rowIndex) {
vector<int> v;
int C = 1;
v.push_back(1);
for (int i = 1; i <= rowIndex; i++)
{
printf("%d ", C);
C = C * (rowIndex +1 - i)/i;
v.push_back(C);
}
return v;
}
、
What range of values can integer types store in C++
How many bytes is unsigned long long?
といくつかの他のソースを経由するが、私は私に必要な結果を与えた以下の変更を行いました。
C = (unsigned long long)C * (rowIndex +1 - i)/i;
「C」はタイプint型と私のベクトルv店int型であるので、私はなぜキャスト符号なしの長い長いが、まだ私に有効な結果を与えるだろう知りたいと思いました。
ちょうど推測です...たぶん、 'i'で除算した後、値が' int'が完全で正当な値である領域に戻ってくるのでしょうか? –