小团在美团旅行的安全部门实习研究加密算法,他提出了一个加密算法。现在小团把解密算法告诉你,希望你对数据进行解密。
加密数据包有两部分构成,一对数字a, b和一个字符串S。解密的方式S串最早在a/b的小数部分出现的位置k,k即为解密信息。小数点后从1开始计数。如果a/b不是一个无限循环小数,则在认为后面有无穷多个0,如5/4=1.2500000000…。
如果S不在a/b的小数部分出现,则无法解密输出-1。
加密数据包有两部分构成,一对数字a, b和一个字符串S。解密的方式S串最早在a/b的小数部分出现的位置k,k即为解密信息。小数点后从1开始计数。如果a/b不是一个无限循环小数,则在认为后面有无穷多个0,如5/4=1.2500000000…。
如果S不在a/b的小数部分出现,则无法解密输出-1。
输入描述:
第一行两个正整数a, b (1 ≤ a, b ≤ 1,000,000,000)。第二行一个数字串S(1 ≤ |S| ≤100,000)。
输出描述:
输出一行k表示答案。
示例1
输入
1 2 500000000000
输出
1
示例2
输入
1234 5678 4579
输出
8
示例3
输入
233 999 333
输出
-1
没过 。。。
import java.math.BigDecimal;
import java.util.Scanner;
/**
* @author luqian
* Created by luqian on 2018/6/9.
* @DESC
*/
public class Main {
public static void main(String [] args){
Scanner sc = new Scanner(System.in);
BigDecimal n = sc.nextBigDecimal();
BigDecimal m = sc.nextBigDecimal();
String str = sc.next();
BigDecimal bigDecimal = n.divide(m,100000,BigDecimal.ROUND_DOWN);
String[] s = bigDecimal.toString().split("\\.");
String temp = s[1];
StringBuffer sb = new StringBuffer(temp);
int ind = sb.indexOf(str);
if (ind == -1){
StringBuffer stringBuffer = new StringBuffer(str);
int x = stringBuffer.length();
while (stringBuffer.charAt(x -1 ) == '0'){
x--;
}
sb.append(String.format("%0"+x+"d", 0));
ind = sb.indexOf(str);
}
System.out.print(ind == -1 ? -1 : (ind + 1));
}
}