Divisibility by Eight
来源:互联网 发布:手机吉他软件下载 编辑:程序博客网 时间:2024/06/05 17:46
一个100位以下的数,能否通过删除一些字符使其能被8整除。听说有人打表过,因为被8整除的数只需要后三位被8整除即可。因为大于1000的部分一定可以用8的倍数表示。
因此这个数是否被8整除取决于后三位。一共124个,打表找。我想可以一个一个找,一共才100位,并不会超时,一开始也可以通过找0和8来剪枝。然后分2位和3位来找。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char c[105];
int leap1[105], leap2[105], leap3, pre, sum;
int main()
{
int i, j, m, n, len, leap, k;
scanf("%s",c);
memset(leap1, 0, sizeof(leap1));
memset(leap2, 0, sizeof(leap2));
len = strlen(c); leap = 0; leap3 = 0;
for (i = 0; i < len; i++)
{
if (c[i] == '0')
{
leap = 1;
}
}
if (leap == 1)
cout << "YES" << endl << "0" << endl;
else
{
for (i = 0; i < len; i++)
{
if (c[i] == '8')
{
leap = 1;
}
}
if (leap == 1)
cout << "YES" << endl << "8" << endl;
else
{
for (i = 0; i < len; i++)
{
for (j = i + 1; j < len; j++)
{
if (((c[i] - '0') * 10 + (c[j] - '0')) % 8 == 0)
{
cout << "YES" << endl << c[i] << c[j] << endl;
leap = 1;
break;
}
}
if (leap == 1)break;
}
if (!leap){
for (i = 0; i < len; i++)
{
for (j = i+1; j < len; j++)
{
for (k = j+1; k < len; k++)
{
if (((c[i] - '0') * 100 + (c[j] - '0') * 10 + (c[k] - '0')) % 8 == 0)
{
cout << "YES" << endl << c[i] << c[j] << c[k] << endl;
leap = 1;
break;
}
}
if (leap == 1)break;
}
if (leap == 1)break;
}
}
if (leap == 0)cout << "NO" << endl;
}
}
return 0;
}
- Divisibility by Eight
- Codeforces550C:Divisibility by Eight
- Divisibility by Eight
- C. Divisibility by Eight
- Divisibility by Eight
- Codeforces Divisibility by Eight
- CF C. Divisibility by Eight
- [CodeForces550C]Divisibility by Eight[数学]
- CODEFORCES 550 C. Divisibility by Eight
- codeforces 550C Divisibility by Eight(数学题)
- 550C Divisibility by Eight(还是枚举)
- CodeForces 550C Divisibility by Eight(枚举)
- Codeforces 550 C. Divisibility by Eight
- codeforce 550c Divisibility by Eight (DFS)
- 【codeforces 550C】Divisibility by Eight
- cf 550c Divisibility by Eight 【规律】
- Codeforces Round #306 (Div. 2)C. Divisibility by Eight--模拟
- Codeforces Round #306 (Div. 2) C.Divisibility by Eight
- OJ刷题---简单密码破解
- 内核中的中断函数request_irq()
- 冒泡排序
- hash 链地址法+ 数组模拟邻接表实现
- 黑马程序员_@protocol 协议
- Divisibility by Eight
- Aspose Cells如何进行数据验证(后附下载地址)
- 自定义控件--下拉刷新
- 完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)
- html5 meta标签属性整理
- 【学习笔记】JavaScript——变量、运算符与表达式、语句
- oc中的copy的深浅拷贝
- 面试笔试
- mysql触发器的作用及语法