首页 > 其他 > 详细

题解 AT3718 【[ABC081B] Shift only】

时间:2020-02-28 12:51:52      阅读:71      评论:0      收藏:0      [点我收藏+]

题目传送门


分析

直接暴力。
我们可以根据题意进行模拟,使用二重循环即可。


代码讲解

  1. 定义变量\(n\)和计数数组\(cnt\),再定义数组\(a\)并输入。
    int a[1000000];
    int n,cnt=0;;
    cin>>n;
    int n,cnt=0;;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
  1. 使用一个死循环,当无法继续\(\div2\)时,结束循环。
        bool pd=true;//①
        for(int j=1;j<=n;j++) 
        {
            if(a[j]%2!=0)
            {
                pd=false;
                break;
            } 
        }
        if(pd==false)break;//②
        if(pd)
        {
            cnt++;
            for(int j=1;j<=n;j++)
                a[j]/=2;
        } 

①判断能否被\(2\)整除使用的布尔型变量。
②循环的结束条件。

  1. 输出最终结果。
    cout<<cnt; 

CODE

#include <bits/stdc++.h>
using namespace std;
int a[1000000];
int main()
{
    int n,cnt=0;;
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    for(int i=1;;i++)
    {
        bool pd=true;
        for(int j=1;j<=n;j++) 
        {
            if(a[j]%2!=0)
            {
                pd=false;
                break;
            } 
        }
        if(pd==false)break;
        if(pd)
        {
            cnt++;
            for(int j=1;j<=n;j++)
                a[j]/=2;
        } 
    } 
    cout<<cnt; 
    return 0;
}

题解 AT3718 【[ABC081B] Shift only】

原文:https://www.cnblogs.com/tearing/p/12376401.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!