求从10到100中能被3或5整除的数的和

扶醉桌前 提交于 2021-01-16 06:01:29

题目

求从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()

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!