如何在没有多余整数的情况下填充整数之间的分隔符
How to fill the separators between integer without the redundant one?
我正在尝试获取正整数的因子。我想要的是8 = 2*2*2
。然而,我得到的是*2*2*2
。如何乘坐第一辆*
?有没有一种标准的方法来更好地描述这种情况?
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int num, i = 2;
const char separator = '*';
cout << "Input a positive integer: ";
cin >> num;
while(num !=1){
while((num % i) != 0){
i++;
}
cout << setw(2) << setfill(separator) << i;
num = num/i;
}
}
输入一个正整数:8
*2*2*2
使用已更新的分隔符。从""
开始,然后设置为"*"
。
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int num, i = 2;
const char *separator = "";
cout << "Input a positive integer: ";
cin >> num;
do {
while((num % i) != 0){
i++;
}
cout << separator << i;
separator = "*";
num = num/i;
} while (num > 1);
}
还更改为do
循环,以处理在OP的原始代码中不打印任何内容的num == 1
和num == 0
。代码可以使用unsigned
作为进一步的扩展/保护。
实现这一点的一种方法是仅在num不等于1时输出setfill(分隔符)。
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int num, i = 2;
const char separator = '*';
cout << "Input a positive integer: ";
cin >> num;
while(num !=1){
while((num % i) != 0){
i++;
}
cout << setw(2) << i;
num = num/i;
if (num != 1)
cout << setfill(separator);
}
}
相关文章:
- 在 c++ 中连接字符串和整数,以便在 C++ 11 不支持计算机的情况下读取多个文件
- 如何在不给它任何类型(如整数)的情况下定义某物?
- 如何在不违反C++核心准则的情况下将整数强制转换为void*
- 整数指针与字符指针的情况下悬空指针
- 如何对 int 变量应用验证,使其仅接受整数数据,并且在任何其他数据的情况下不会出错?
- 如何在没有整数溢出的情况下找到n%(k*k)
- 如何在不中断剩余代码的情况下仅C++中输入整数
- 如何避免字符串到整数转换情况下的无效参数异常
- 如何在给定任意数量的整数的情况下创建一个唯一键?并使用该键存储,然后从地图中查找
- 如何在不使用对象的情况下连接字符串、整数和浮点数
- 默认情况下,决定整数类型是唱歌或无符号的类型
- 如何在不使用循环的情况下将低字节和高字节的字符数组转换为它们的整数数组
- g++ 在不使用 -Wconvert 的情况下将 double/float 转换为无符号整数时发出警告
- 在给定变量为有限整数的情况下,如何让C++程序求解输入值的变量
- 如果我们在需要整数的开关情况下输入字符会发生什么
- 在不违反约束的情况下生成整数数组
- 如何在没有多余整数的情况下填充整数之间的分隔符
- vsnprintf程序在%s设置为整数的情况下崩溃
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 如果打印后输入整数,则C++分段故障,但其他情况下可以