描述 Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为2的正整数被称为 Windy 数。 Windy 想知道,在A和B之间,包括A和B,总共有多少个 Windy 数? 输入 一行两个数,分别为A,B。 输出 输出一个整数,表示答案。C++
时间: 2024-02-23 18:59:08 浏览: 13
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
bool is_windy(int num) {
string num_str = to_string(num);
for (int i = 1; i < num_str.length(); i++) {
if (abs(num_str[i] - num_str[i-1]) < 2) {
return false;
}
}
return true;
}
int main() {
int a, b;
cin >> a >> b;
int count = 0;
for (int i = a; i <= b; i++) {
if (is_windy(i)) {
count++;
}
}
cout << count << endl;
return 0;
}
```
算法思路与 Python 版本相同,只是实现方式略有不同。在 C++ 中,需要使用 to_string() 函数将数字转化为字符串。相邻两个字符的差值可以直接用字符的 ASCII 码值相减得到。
相关问题
描述 Windy 定义了一种 Windy 数:不含前导零且相邻两个数字之差至少为2的正整数被称为 Windy 数。 Windy 想知道,在A和B之间,包括A和B,总共有多少个 Windy 数? 输入 一行两个数,分别为A,B。 输出 输出一个整数,表示答案。
以下是 Python 代码实现:
```
a, b = map(int, input().split())
def is_windy(num):
num_str = str(num)
for i in range(1, len(num_str)):
if abs(int(num_str[i]) - int(num_str[i-1])) < 2:
return False
return True
count = 0
for i in range(a, b+1):
if is_windy(i):
count += 1
print(count)
```
算法思路:
对于每个数字,将其转化为字符串,然后遍历字符串中的每一位,判断相邻两个数字的差是否小于2。如果有一对相邻数字的差小于2,则该数字不是 Windy 数;否则,该数字是 Windy 数。
最后,遍历区间 [A, B] 中的每个数字,统计 Windy 数的数量即可。
tft.drawCentreString("It is windy",120,48,2);
这行代码的作用是在TFT显示器上居中显示字符串"It is windy",位置为(120, 48),字体大小为2。具体来说,tft.drawCentreString()是TFT_eSPI库中用于在显示器上居中显示字符串的方法,其中第一个参数是要显示的字符串,第二个和第三个参数是字符串的中心位置坐标,第四个参数是字体大小。该方法还有其他可选参数,例如字体颜色、背景颜色等,您可以根据需要进行设置。