题目是 .求1000以内不能被7整除的数的和
某人代码如下 答案证实是对的 num为传进去的参数 即本题的1000 public static int sum(int num) {
if(num < 0) {
throw new IllegalArgumentException("num must be positive number.");
}
int s = (num * (num + 1)) / 2;
int a = 0;
while(a <= num) {
s -= a;
a += 7;
}
return s;
}
某人代码如下 答案证实是对的 num为传进去的参数 即本题的1000 public static int sum(int num) {
if(num < 0) {
throw new IllegalArgumentException("num must be positive number.");
}
int s = (num * (num + 1)) / 2;
int a = 0;
while(a <= num) {
s -= a;
a += 7;
}
return s;
}
if(num < 0) {
throw new IllegalArgumentException("num must be positive number.");
}
int s = (num * (num + 1)) / 2; //算出0+1+2+...+1000的和,就是(上底+下底)*高/2;类似于求梯形面积那样求
int a = 0;
while(a <= num) {
s -= a;
a += 7; //把是7的倍数(0,7,14,21...)减去,最后剩下的就是不是7的倍数的和了
}
return s;
}
System.out.println(sum(1000));
} public static int sum(int num) {
if (num < 0) {
throw new IllegalArgumentException("num must be positive number.");
}
return (num * (num + 1)) / 2 - 7 * (num / 7 * (num / 7 + 1)) / 2;
}
}其中 结果为