求大神教题(写c++代码)

题目总版

ss_yangzirui @ 2024-11-11 18:36:08

问题 A: 2020DLOI小甲 第三题 交替位二进制数(1.3) 内存限制:128 MB 时间限制:1.000 S 评测方式:文本比较 命题人:外部导入 提交:523 解决:160 题目描述 给定 N 个正整数,检查它们的二进制表示是否总是 0、 1 交替出现:换句话说,就是二进制表示中相邻两位的数字永不相同。 如果满足输出”true”, 否则输出”false”。 输入 第 1 行: 1 个正整数 N,不超过 10000。 第 2 行: N 个正整数,不超过 1000000000。 输出 输出 N 个: true 或 false 。 样例输入 复制 2 5 7 样例输出 复制 true false 提示 【样例1解释】 5 的二进制表示是: 101, 7 的二进制表示是: 111。 【样例输入2】 3 11 12 13 【样例输出2】 false false false 【样例2解释】 11 的二进制表示是: 1011, 12 的二进制表示是: 1100。13 的二进制表示是: 1101。


by xywuyu @ 2024-11-11 18:45:37

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,a,e;
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        bool b=0;
        cin>>a;e=a&1;

        while (a!=0)
        {

            if (e==(a>>1)&1)
            {
                cout<<"false ";b=1;break;
            }
            else {
                e=(a>>1)&1;
                a>>=1;
            }
        }
        if (b)

            continue;

        cout<<"true ";
    }
    return 0;
 } 

by xywuyu @ 2024-11-11 18:45:55

@ss_yangzirui


by ss_yangzirui @ 2024-11-11 18:51:02

@liuli688 谢谢,已关注


by ss_yangzirui @ 2024-11-11 18:51:21

@xywuyu 谢谢,已关注


by liuli688 @ 2024-11-11 18:54:02

额,我把代码自删了


#include <cstdio>

int T, n;

signed main()
{
    for (scanf("%d", &T); T--; )
    {
        scanf("%d", &n);
        bool flag = n & 1, judge = true;
        for (n >>= 1; n; n >>= 1)
        {
            if (not (n & 1 xor flag))
            {
                printf("false\n");
                judge = false;
                break;
            }
            flag = n & 1;
        }
        if (judge)
            printf("true\n");
    }
    return 0;
}

by ss_yangzirui @ 2024-11-12 18:11:12

@liuli688 请问可以写c++代码吗


by ss_yangzirui @ 2024-11-12 18:11:28

@xywuyu 请问可以写c++代码吗


by liuli688 @ 2024-11-12 18:21:09

@ss_yangzirui 这不是 C++ 是什么?


by liuli688 @ 2024-11-12 18:23:38

这是适合萌新的版本。

#include <iostream>
using std::cin;
using std::cout;

int T, n;

signed main()
{
    cin >> T;
    while (T--)
    {
        cin >> n;
        bool flag = n % 2, judge = true;
        for (n /= 2; n != 0; n /= 2)
        {
            if (!(n % 2 ^ flag))
            {
                cout << "false\n";
                judge = false;
                break;
            }
            flag = n % 2;
        }
        if (judge)
            cout << "true\n";
    }
    return 0;
}

by liuli688 @ 2024-11-12 18:25:34

@ss_yangzirui 还有,你都 AC 紫题了还要请教这么简单的题?不会是 ctjer 吧


| 下一页