题目
求从10到100中能被3或5整除的数的和
解答
解答一
public class Test {
public static void main(String[] args) {
int sum = 0;
for (int i = 10; i < 100; i++) {
if (i % 3 ==0 || i % 5 == 0) {
sum += i;
}
}
System.out.println(sum);
}
}
解答二
/**
* @brief count tot nums val in 10~100 which 10%3 = 0 or 10%5 = 0
* @param void
* @return tot nums
*/
#include <stdio.h>
#define DEBUG 1
int table[120];
#define END 100
#define BASE3 12
#define STEP3 3
#define BASE5 10
#define STEP5 5
int solve(void){
int sum = 0;
int pos3 = BASE3;
int pos5 = BASE5;
while(pos3 < END){
if(pos5 < END){
table[pos5] = 1;
sum += pos5;
pos5 += STEP5;
}
if(!table[pos3]){
sum += pos3;
}
pos3 += STEP3;
}
return sum;
}
int main(void){
printf("%d\n", solve());
return 0;
}
解答三
/**
* @brief count tot nums val in 10~100 which 10%3 = 0 or 10%5 = 0
* @param void
* @return tot nums
*/
#include <stdio.h>
#define END 100
#define BASE3 12
#define STEP3 3
#define BASE5 10
#define STEP5 5
#define BASE15 15
#define STEP15 15
int solve(void){
int sum = 0;
int pos3 = BASE3;
int pos5 = BASE5;
int pos15 = BASE15;
while(pos3 < END){
sum += pos3;
pos3 += STEP3;
if(pos5 >= END){
continue;
}
sum += pos5;
pos5 += STEP5;
if(pos15 >= 100){
continue;
}
sum -= pos15;
pos15 += STEP15;
}
return sum;
}
int main(void){
printf("%d\n", solve());
return 0;
}
解答四
'''@author noonoo'''
range(10,100).filter(v=>v%3=0‖v%5=0).sum()
来源:oschina
链接:https://my.oschina.net/u/572632/blog/299389