c++ - 计算整数十进制表示中不同数字的数量

标签 c++

我是 C++ 开发的新手,我希望有人能帮助我完成我一直在尝试做的事情。

例如,我想要一个函数,给定一个整数输入,返回它包含的不同数字的数量。

例如,如果我有三个整数:

int a = 19876;
int b = 25644;
int c = 4444;

如果我将“a”传递给函数,我希望返回数字 5。 如果将“b”传递给函数,我希望返回“4”, 如果将“c”传递给函数,则将返回 1,因为它们是不同数字的数量。

有人可以说明我如何实现这一目标吗?

最佳答案

你的意思是要求整数中不同小数位数的个数?

int distinct_digits(int value) {
    std::ostringstream out;
    out << value;
    std::string digits = out.str();
    std::sort(digits.begin(), digits.end());
    return std::unique(digits.begin(), digits.end()) - digits.begin();
}

(未编译或测试但基本思想应该有效)

关于c++ - 计算整数十进制表示中不同数字的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12679777/

相关文章:

c++ - 为什么静态 lambda 成员的封闭类型不完整?

c++ - 二叉搜索树中的根节点为空

C++在自定义线程中创建cef对象

c++ - 如何在二维 vector 中打印所有 8 个邻居(段错误)

C++:编译器能否优化按值传递?

c++ - decltype 的行为

c# - 在 .NET 的 Main() 方法之前执行代码

c++ - 递归(从 2 到(2 乘以 n)的偶数之和 ex : input : n=6, 输出:2+4+6

c++ - 如何从文件中读取 double 值?

C++简单IO元音计数程序