c++输入1个正整数n,找出n中最小的数位数字x,统计x的出现次数s,以及它最左侧的出现位置lops.输入样例: 384225 输出样例:(输出语句中的“=”是英文标点符号) x=2 s=2 lpos=3
时间: 2024-12-20 11:20:46 浏览: 12
在C++中,为了找到正整数n中最小的数位数字x及其出现次数s和最左侧的位置lops,我们可以遍历每一位数字并维护一个变量来跟踪所需的值。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
struct Result {
char digit;
int count;
int leftmost_pos;
};
Result find_min_digit_and_stats(int n) {
std::string digits = std::to_string(n);
Result result;
result.digit = digits[0];
result.count = 1;
result.leftmost_pos = 0;
for (size_t i = 1; i < digits.size(); ++i) {
if (digits[i] < result.digit) {
result.digit = digits[i];
result.count = 1;
result.leftmost_pos = i;
} else if (digits[i] == result.digit) {
result.count++;
}
}
return result;
}
int main() {
int n;
std::cout << "请输入一个正整数n: ";
std::cin >> n;
Result stats = find_min_digit_and_stats(n);
std::cout << "x=" << stats.digit << " s=" << stats.count << " lpos=" << stats.leftmost_pos << std::endl;
return 0;
}
```
这个程序首先将输入的正整数转换成字符串,然后遍历每个字符,比较它们与当前找到的最小数字。如果遇到更小的数字,更新结果;如果遇到相同的数字,则计数加一。遍历完成后,我们得到最小的数位、它的出现次数以及最左侧的位置。
阅读全文