Java实现 删数字
删数字
时间限制: 1 Sec 内存限制: 128 MB
题目描述
奶牛在数学课上学习了整除的概念。农夫Farmer John为了考验它的数学水平,于是在白纸上写了正整数T。由于农夫不喜欢数字0,所以正整数T是不含数字0的。奶牛可以删除T的若干位数字,剩下来的数字从左到右构成一个正整数P,使得正整数P必须是5的倍数。奶牛有多少种不同的删除方案?具体请看样例解释。
输入
第一行,一个正整数T。
输出
一个整数,奶牛不同的删除方案数。
1、奶牛可以删除0个数字(即不删除任何数字)。
2、奶牛不能把T全部删除掉。即至少要剩下1位数字。
3、由于T的位数可能较长,建议用字符串形式读入。
样例输入
复制样例数据
1256
样例输出
4
PS:
我如果是5的倍数,那么我最一位一定是5,所以,我可以找出我的5所在的地方,我其他的地方都可以随便删,但我的5后面的一定要删除
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 删数字 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
br.close();
int[] num = new int[s.length()+1];
num[0]=1;
for (int i = 1; i < num.length; i++) {
num[i]=num[i-1]*2;
}
char[] str=s.toCharArray();
long sum=0l;
for (int i = 0; i < str.length; i++) {
if(str[i]=='5'){
sum+=num[i];
}
}
System.out.println(sum);
}
}