📌  相关文章
📜  在 C/C++ 中用千位分隔符格式化数字的程序

📅  最后修改于: 2021-09-07 04:51:27             🧑  作者: Mango

给定一个整数N ,任务是以国际位值格式打印给定整数的输出,并将逗号放在适当的位置,从右边开始。

例子

处理方法:按照以下步骤解决问题:

  1. 将给定的整数N转换为其等效的字符串 。
  2. 从右到左迭代给定字符串的字符。
  3. 每遍历 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)

如果您想与行业专家一起参加直播课程,请参阅Geeks Classes Live