【cf 550C】C. Divisibility by Eight

网友投稿 665 2022-11-05

【cf 550C】C. Divisibility by Eight

【cf 550C】C. Divisibility by Eight

1.​​题目链接​​。给定一个数字,问是否可以通过删除一些数字使得剩下的数字可以整除8.注意删除之后的数字位置相对不变

2.思维题,其实还是蛮好做的。我们保留的数字其实最多只需要三位数,原因很简单,从第四位数到最后一定可以整除。

比如:an..a3a2a1。那么这个数可以被写成:an*pow(10,n-1)+an-1*pow(10,n-2).....a3*100+a2*10+a1.对于四位以后的,权值至少是1000,这个是整除8的,所以这个数能不能整除8其实全是看前三位。n^3枚举后三位即可。

#includeusing namespace std;char s[110];#pragma warning(disable:4996)int main(){ scanf("%s", &s); int len = strlen(s); for (int i = 0; i < len; i++){ int t1 = s[i]- '0'; if (t1 % 8 == 0) { printf("YES\n%d\n", t1); return 0; } for (int j = i + 1; j < len; j++) { int t2 = t1 * 10 + s[j] - '0'; if (t2 % 8 == 0) { printf("YES\n%d\n", t2); return 0; } for (int k = j + 1; k < len; k++) { int t3 = t2 * 10 + s[k] - '0'; if (t3 % 8 == 0) { printf("YES\n%d\n", t3); return 0; } } } } puts("NO"); return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:编辑个人信息,使用户能够拖动和排序图像顺序
下一篇:实现如何在不降低准确性和性能的情况下减小Core ML模型的大小
相关文章

 发表评论

暂时没有评论,来抢沙发吧~