質問:Extra Long Factorials(https://www.hackerrank.com/challenges/extra-long-factorials/problem)制約:1 <n <= 100
私は効率的な方法に加えて、TLEを示すコードを送信するときに、ネットで利用可能な同じソリューションを実行しています。以下は私のコードです
public static void multiply(ArrayList<Integer> prod,int i)
{
int carry=0;
for(int j=0;j<prod.size();j++)
{
int currp=prod.get(j)*i+carry;
prod.add(j,currp%10);
carry=currp/10;
}
while(carry>0)
{
prod.add(carry%10);
carry/=10;
}
}
// Complete the extraLongFactorials function below.
static void extraLongFactorials(int n) {
ArrayList<Integer> prod= new ArrayList<>();
prod.add(1);
for(int i=2;i<n;i++)
multiply(prod,i);
for(int i=prod.size()-1;i>=0;i--)
System.out.print(prod.get(i));
System.out.println();
}
コードにはいくつかの重大なバグがあります。
クラスに貼り付けてmainメソッドを追加してテストしました。
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
extraLongFactorials(i);
}
}
1
。2
、これは間違っています(「2」である必要があります)3
-それは決して止まりません私は意図的にあなたの間違いを訂正しません-(デバッガーを使用して)自分でそれらを見つけて修正してみてください。
良いニュース:コードには2つのバグがあります。これらを修正すると、コードはテストに合格します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加