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);
	}
}

原文地址:https://www.cnblogs.com/a1439775520/p/13075050.html