Я работаю над этим кодом уже 3 дня и не могу понять, как удалить нули перед выводом.
Это программа, которая вычисляет факториал числа.Даже если я использую оператор if, как вы можете видеть, который закомментирован, он удаляет нули после и между числами.Я даже пытался принять size
в качестве начального значения для a
, но оно просто принимает глобальное значение, но не из цикла while, я даже пытался сохранить его значение в другой переменной, тогда оно также не работает.
#include <bits/stdc++.h>
#include <iostream>
using namespace std;
// Complete the extraLongFactorials function below.
void extraLongFactorials(int n) {
int arr[500] = {0};
int size = 1, i = 0, carry = 0, temp = 0;
arr[0] = 1;
for (int j = 1; j <= n; j++) {
for (int k = 0; k < 500; k++) {
temp = arr[k] * j + carry;
arr[k] = temp % 10;
carry = temp / 10;
}
while (carry) {
size++;
arr[size] = carry % 10;
carry %= 10;
}
}
for (int a = 499; a >= 0; a--) { // if(arr[a]!=0)
cout << arr[a];
}
}
int main() {
int n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
extraLongFactorials(n);
return 0;
}