CodeForces 550C Divisibility by Eight (规律,暴力)
2016-10-30 17:44
399 查看
题意:
给你一个大数(100位以下)问可不可以通过去掉一些数字(可不去),使这个数是8的倍数。
思路:
本题显然是规律题。但可以不找规律,直接在0到1000中,暴力8的倍数。若大数中含有0到1000中8的倍数,直接把大数拆成这个数就行。
为什么是0到1000呢?因为所有的8的倍数数通过删数字后都可以用0到1000内的8的倍数来表示,也就是说1000是一个循环节。
具体的规律可以不用管,暴力循环节就行。
代码:
0到1000有效状态只有3位数字,3个for暴力即可。
#include <bits/stdc++.h>
using namespace std;
int ans;
bool solve(string str){
str="00"+str;
int n=str.size();
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
int num=(str[i]-'0')*100+(str[j]-'0')*10+(str[k]-'0')*1;
if(num%8==0){
ans=num;
return 1;
}
}
}
}
return 0;
}
int main()
{
string str;
while(cin>>str){
if(solve(str))
cout<<"YES"<<endl<<ans<<endl;
else
cout<<"NO"<<endl;
}
}
给你一个大数(100位以下)问可不可以通过去掉一些数字(可不去),使这个数是8的倍数。
思路:
本题显然是规律题。但可以不找规律,直接在0到1000中,暴力8的倍数。若大数中含有0到1000中8的倍数,直接把大数拆成这个数就行。
为什么是0到1000呢?因为所有的8的倍数数通过删数字后都可以用0到1000内的8的倍数来表示,也就是说1000是一个循环节。
具体的规律可以不用管,暴力循环节就行。
代码:
0到1000有效状态只有3位数字,3个for暴力即可。
#include <bits/stdc++.h>
using namespace std;
int ans;
bool solve(string str){
str="00"+str;
int n=str.size();
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
for(int k=j+1;k<n;k++){
int num=(str[i]-'0')*100+(str[j]-'0')*10+(str[k]-'0')*1;
if(num%8==0){
ans=num;
return 1;
}
}
}
}
return 0;
}
int main()
{
string str;
while(cin>>str){
if(solve(str))
cout<<"YES"<<endl<<ans<<endl;
else
cout<<"NO"<<endl;
}
}
相关文章推荐
- Codeforces 406A Unusual Product【暴力找规律】
- CodeForces - 863C 1-2-3 暴力规律-- STL应用
- Codeforces 57C Array dp暴力找到规律
- Codeforces Round #439 (Div. 2) Problem E (Codeforces 869E) - 暴力 - 随机化 - 二维树状数组 - 差分
- CodeForces - 863B Kayaking 暴力枚举
- CodeForces 111B - Petya and Divisors- 暴力-数学
- codeforces:405C - Unusual Product 规律异或
- CodeForces 496C-- Removing Columns-暴力
- Codeforces 493C Vasya and Basketball(暴力)
- codeforces 9 div2 C.Hexadecimal's Numbers 暴力打表
- 【CodeForces】716B - Complete the Word(暴力)
- codeforces 271A Beautiful Year(暴力水题)
- codeforces 424C. Magic Formulas (异或规律)
- 【CodeForces】651B - Beautiful Paintings(暴力)
- Codeforces 10C Digital Root 规律题
- CodeForces - 825B Five-In-a-Row (暴力模拟)
- hdu 5512 Pagodas【暴力打表+找规律】
- CodeForces - 633B A Trivial Problem(找规律)
- Codeforces 534D - Handshakes(构造,暴力)
- Codeforces 456B Fedya and Maths 打表找规律