package chow.test;
/**
* @author Chow
* @date Jun 4, 2010
* @Description 一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,
* 则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和.
*/
public class TestRel7 {
public static void main(String[] args){
long num = 21;
long sum = 0;
int toSub = 0;
long beginTime = System.currentTimeMillis();
while(num > 0){
if(num % 7 == 0){
num--;
continue;
}else if((toSub = contain7(num)) != 0){
//num包含7
num -= toSub;
continue;
}
sum += num*num;
num--;
}
long endTime = System.currentTimeMillis();
System.out.println(sum + " Time:" + (endTime - beginTime));
}
/**
* 从低位开始检查,是否包含数字7,若包含返回最后一个包含7的位数的位值
* @param num 待检测的数
* @return 0代表不包含7,若最后一位是7的在百位上,则返回100
*/
public static int contain7(long num){
int toSub = 0;
int count = 1;
do{
if(num % 10 == 7){
toSub = count;
}
count *= 10;
num /= 10;
}while(num > 0);
return toSub;
}
}
topcoder--与7相关的数:java 实现
最新推荐文章于 2022-02-24 23:12:12 发布