每日一题 - 231201 - Divisibility by Eight

  • Divisibility by Eight

  • TAG - 整除特性、枚举 整除特性、枚举 整除特性、枚举
  • 时间复杂度 - O ( N 3 ) O(N^3) O(N3)
//
#include
using namespace std;
// #define int long long 

void solve()
{
    string s;
    cin>>s;

    for( int i=0;i<s.size();i++ )
        if( s[i]=='0' ) { cout<<"YES"<<endl<<0<<endl; return ; }
    
    s="00"+s;
    for( int i=0;i<s.size();i++ )               // s.size()_change
        for( int j=i+1;j<s.size();j++ )
            for( int k=j+1;k<s.size();k++ )
            {                                   // ans_save
                int ans=s[i]*100+s[j]*10+s[k]-111*'0';
                if( ans%8==0 ) { cout<<"YES"<<endl<<ans<<endl; return ; }
            }
    cout<<"NO"<<endl;
}

signed main()
{
    int t=1;
    // scanf("%d",&t );
    while( t-- ) solve();
    return 0;
}

实现细节

  • s.size() 的改变
  • 中间值的存储
  • 0 的处理

参考示意图


参考链接

  • 整除的特性
  • 能被8整除的数的特征是设么?

作者 | 乐意奥AI

你可能感兴趣的:(ACM,算法)