C++ -- 删数字
2022/1/12 14:04:13
本文主要是介绍C++ -- 删数字,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
奶牛在数学课上学习了整除的概念。农夫Farmer John为了考验它的数学水平,于是在白纸上写了正整数T。由于农夫不喜欢数字0,所以正整数T是不含数字0的。奶牛可以删除T的若干位数字,剩下来的数字从左到右构成一个正整数P,使得正整数P必须是5的倍数。奶牛有多少种不同的删除方案?具体请看样例解释。
输入
第一行,一个正整数T。
输出
一个整数,奶牛不同的删除方案数。
1、奶牛可以删除0个数字(即不删除任何数字)。
2、奶牛不能把T全部删除掉。即至少要剩下1位数字。
3、由于T的位数可能较长,建议用字符串形式读入。
样例输入 Copy
1256
样例输出 Copy
4
提示
奶牛有4种不同的删除方案:
第1种方案:删除T的第四位数字,剩下的P=125,是5的倍数。
第2种方案:删除T的第一位和第四位数字,剩下的P=25,是5的倍数。
第3种方案:删除T的第二位和第四位数字,剩下的P=15,是5的倍数。
第4种方案:删除T的第一位、第二位、第四位数字,剩下的P=5,是5的倍数。
解题思路:数字中5 后面的数都要删除,而5前面的数每多一位就多了一种组合方式。
Code:
#include <iostream> #include <stdio.h> using namespace std; const int N = 100010; typedef long long LL; string s; LL a[N], ans; signed main() { cin >> s; a[0] = 1; for(int i = 1; i <= 80; i ++ ) a[i] = a[i - 1] * 2; for(int i = s.size() - 1; i >= 0; i -- ) { if(s[i] == '5') { ans += a[i]; } } cout << ans << endl; }
这篇关于C++ -- 删数字的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28pyqt 怎么打包整个项目-icode9专业技术文章分享
- 2024-09-28laravel Commands 创建带有参数的 Artisan 命令的步骤和示例-icode9专业技术文章分享
- 2024-09-28antd怎么实现渲染tiff图片-icode9专业技术文章分享
- 2024-09-28英文半角中划线和中文全角的中划线有什么区别-icode9专业技术文章分享
- 2024-09-28nvm npm 和node 他们之间有什么关系-icode9专业技术文章分享
- 2024-09-28Node Version Manager (nvm)使用教程-icode9专业技术文章分享
- 2024-09-28nvm命令太慢,是什么原因-icode9专业技术文章分享
- 2024-09-28Kotlin 如何增加、删除和修改 MutableStateFlow 中的值。-icode9专业技术文章分享
- 2024-09-28Kotlin的stateFlow.update 写法介绍-icode9专业技术文章分享
- 2024-09-28kotlin 怎么获取当前时间格式-icode9专业技术文章分享