c++ - 如何去除数字前的零?
问题描述
我已经在这段代码上工作了 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;
}
解决方案
只需通过找出第一个非零值的索引来跳过前导零:
i = 499;
// Skip leading zeros.
while (i > 0 && arr[i] == 0) {
--i;
}
while (i >= 0) {
cout << arr[i--];
}
另外,请不要#include <bits/stdc++.h>
。这是一个私有的、编译器特定的头文件,您不应该包含它。
推荐阅读
- javascript - 将数据发送到 php 以从数据库中重新运行数据
- spring-kafka - 几个小时后,Kafka 听众停止阅读主题
- python - 为什么 pygame 默认不运行 pygame.init() ?
- xcode - 如何修复我的 m1 芯片 mac 上的“FontAwesomeKit/FAKIcon.h”文件未找到错误?
- python - 使用 opencensus-python 时路径不存在或不可访问错误
- python - 无霍夫圆检测
- php - 如何从用户文本输入中搜索数据库记录以查找匹配项并避免提取信息?(PHP)
- javascript - 隐藏android键盘而不失去对输入文本字段的关注
- javascript - 获取在数组中推送的特定 API 响应位置时出错
- mysql - 谁能告诉我如何在节点中使用 sinch-rtc