http://www.baidu.com/
对于每组测试数据,输出一行,表示相应的n是否是17的倍数。1表示是,0表示否。
Sample Input
34
201
2098765413
1717171717171717171717171717171717171717171717171718
0
Sample Output
1
0
1
0
Problem Source
The Sixth Hunan Collegiate Programming Contest
题目连接:http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=10932
分析:简单的大数操作,按照习惯本人喜欢用JAVA做
源代码:
import java.math.BigInteger;
import java.util.Scanner;
//第六届湖南省ACM程序设计大赛的第三题目
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.next();
if (str.equals(0)) {//粗心的地方写成了endWith导致了WA六次呀,伤不起伤不起
break;
}
int len = str.length();
String aStr = str.substring(0, len - 1);
String bStr = str.substring(len - 1);
BigInteger num = new BigInteger(str);// 原数
BigInteger a = new BigInteger(aStr);
BigInteger b = new BigInteger(bStr);
BigInteger n = BigInteger.valueOf(5);
BigInteger temp = b.multiply(n);// ??位数乘上5倍
// System.out.println(temp);
BigInteger r = a.subtract(temp);// 再用原来剩下的数减去5*个位数
// System.out.println(r);
r = r.abs();// 转换成绝对值
// System.out.println(r);
BigInteger m = BigInteger.valueOf(17);
// System.out.println(m);
// System.out.println(r.mod(m));
if (r.mod(m).compareTo(BigInteger.valueOf(0)) == 0
&& num.mod(m).compareTo(BigInteger.valueOf(0)) == 0) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
}