给定一个整数N ,任务是以国际位置值格式打印给定整数的输出,并在右边将逗号放在适当的位置。
例子
Input: N = 47634
Output: 47, 634
Input: N = 1000000
Output : 1, 000, 000
方法:请按照以下步骤解决问题:
- 将给定的整数N转换为其等效的字符串。
- 从右到左遍历给定字符串的字符。
- 每3个字符遍历一次后,插入一个’,’分隔符。
下面是上述方法的实现:
C++
// C++ program to implement the
// above approach
#include
using namespace std;
// Function to put thousands
// separators in the given integer
string thousandSeparator(int n)
{
string ans = "";
// Convert the given integer
// to equivalent string
string num = to_string(n);
// Initialise count
int count = 0;
// Traverse the string in reverse
for (int i = num.size() - 1;
i >= 0; i--) {
count++;
ans.push_back(num[i]);
// If three characters
// are traversed
if (count == 3) {
ans.push_back(',');
count = 0;
}
}
// Reverse the string to get
// the desired output
reverse(ans.begin(), ans.end());
// If the given string is
// less than 1000
if (ans.size() % 4 == 0) {
// Remove ','
ans.erase(ans.begin());
}
return ans;
}
// Driver Code
int main()
{
int N = 47634;
string s = thousandSeparator(N);
cout << s << endl;
}
输出:
47,634
时间复杂度: O(log 10 N)
辅助空间: O(1)