解题思路: 注意输入中间有一个逗号,一开始没注意错的都让我怀疑题目有问题了,呜呜呜
注意事项:
参考代码:
#include"bits/stdc++.h" using namespace std; // 定义全局变量,用于存储输入的k和x以及中间计算结果数组a, b, c, d long long k, x, a[1005], b[1005], c[1005], d[1005]; int main() { char s; // 定义字符变量s,用于接收输入的字符 cin >> k >> s >> x; // 从标准输入读取k, s和x的值 b[0] = k; // 初始化b数组的第一个元素为k c[0] = k; // 初始化c数组的第一个元素为k for (int i = 1; i <= 1000; i++) { // 循环1000次,生成序列 b[i] = 3 * b[i - 1] + 1; // 根据公式计算b数组的第i个元素 c[i] = 2 * c[i - 1] + 1; // 根据公式计算c数组的第i个元素 a[i] = 2 * b[i - 1] + 1; // 根据公式计算a数组的第i个元素 d[i] = 3 * c[i - 1] + 1; // 根据公式计算d数组的第i个元素 if (b[i] == x || c[i] == x || a[i] == x || d[i] == x) { // 检查是否有任何一个数组的元素等于x cout << "YES"; // 如果找到匹配的元素,输出"YES" break; // 退出循环 } else if (i == 1000) { // 如果循环到最后一次仍未找到匹配的元素 cout << "NO"; // 输出"NO" } } return 0; // 返回0,表示程序正常结束 }
0.0分
0 人评分