c++美丽数 题目描述 如果一个整数由同一个数字组成,则称它是美丽的,如:3、55、555、22和888888。这些数不美丽:35,77770,4545和123456。请找出从1到n(包括1和n)中,有多少数是美丽的。
时间: 2024-04-08 09:33:41 浏览: 25
这是一个关于美丽数的问题。我们需要找出从1到n(包括1和n)中有多少个美丽的数。
一种解决方法是遍历从1到n的所有整数,对每个整数进行判断是否美丽。判断一个整数是否美丽的方法是将该整数转换为字符串,然后检查字符串中的字符是否都相同。如果是,则该数是美丽的,计数器加1。
下面是一个用C++实现的示例代码:
```cpp
#include <iostream>
#include <string>
bool isBeautiful(int num) {
std::string numStr = std::to_string(num);
char firstChar = numStr[0];
for (char c : numStr) {
if (c != firstChar) {
return false;
}
}
return true;
}
int countBeautifulNumbers(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (isBeautiful(i)) {
count++;
}
}
return count;
}
int main() {
int n;
std::cout << "请输入一个整数n:";
std::cin >> n;
int beautifulCount = countBeautifulNumbers(n);
std::cout << "从1到" << n << "中有" << beautifulCount << "个美丽的数。" << std::endl;
return 0;
}
```
你可以将上述代码保存为一个.cpp文件,然后使用C++编译器进行编译运行。运行程序后,输入一个整数n,程序将输出从1到n中美丽数的个数。