淘淘不喜欢数字3、6、9,在数数时,从1开始数,带有这三个数字的都会跳过。如:1, 2, 4, 5, 7, 8, 10, 11, 12, 14, 15, 17, 18, 20, 21, 22, 24, 25, 27, 28, 40,…… 输入一个n,求淘淘数到n时,她所数的所有数之和是多少?若n包含3、6、9,则显示,淘淘不会数到这个数。
时间: 2023-04-29 08:03:25 浏览: 649
假设输入的n为100,那么淘淘数到100时,她数的所有数之和为:
1 + 2 + 4 + 5 + 7 + 8 + 10 + 11 + 12 + 14 + 15 + 17 + 18 + 20 + 21 + 22 + 24 + 25 + 27 + 28 + 29 + 40 + 41 + 42 + 44 + 45 + 47 + 48 + 50 + 51 + 52 + 54 + 55 + 57 + 58 + 60 + 61 + 62 + 64 + 65 + 67 + 68 + 70 + 71 + 72 + 74 + 75 + 77 + 78 + 80 + 81 + 82 + 84 + 85 + 87 + 88 + 90 + 91 + 92 + 94 + 95 + 97 + 98 + 100
= 2470
如果n包含3、6、9,则显示淘淘不会数到这个数,例如输入n为39,则淘淘不会数到39,因为39包含数字3。
相关问题
请使用C++进行编程:淘淘蓝蓝有⼀个由 n 个字符组成的字符串 s。每个字符为 0 或 1。 淘淘蓝蓝可以对字符串执⾏操作。每个操作包括两个步骤: 从 1 到| S |之间选择⼀个整数 i,然后删除字符 Si(字符串⻓度减⼩1,被删除 的字符串右边的字符下标也减⼩1); 如果字符串 s 不为空,则删除由相同字符组成的最⼤⻓度前缀(剩余字符的下标 和字符串⻓度将减去删除的前缀的⻓度)。 请注意,这两个步骤在每个操作中都是必需的,并且其顺序⽆法更改。 淘淘蓝蓝希望知道这个字符串最多能进⾏多少次操作。 请注意:如果某次操作只进⾏了⼀个步骤,也算作⼀次操作。 淘淘蓝蓝有很多个这样的字符串,所以⼀个测试点中可能有多组数据
可以使用以下C++代码来解决这个问题:
```cpp
#include <iostream>
#include <string>
int maxOperations(std::string s) {
int count = 0;
int n = s.length();
int i = 0;
while (i < n) {
if (s[i] == '1') {
count++;
i++;
while (i < n && s[i] == '1') {
i++;
}
}
i++;
}
return count;
}
int main() {
int t;
std::cin >> t;
while (t--) {
std::string s;
std::cin >> s;
int result = maxOperations(s);
std::cout << result << std::endl;
}
return 0;
}
```
在这段代码中,我们定义了一个`maxOperations`函数来计算字符串`s`可以进行的最大操作次数。我们使用一个循环来遍历字符串,如果当前字符为'1',则计数器加1,并且继续遍历直到遇到不是'1'的字符。最后返回计数器的值作为结果。
在`main`函数中,我们首先读取测试用例的数量`t`,然后循环读取每个字符串`s`并调用`maxOperations`函数来计算结果,并将结果打印出来。
请注意,这段代码假设输入是合法的,即字符串`s`只包含字符'0'和'1'。在实际使用中,你可能需要添加一些输入验证来确保输入的正确性。
阅读全文