求n以内,除5的倍数的和

  • 比如n=20,这些数可以是
    1,2,3,4
    6,7,8,9
    11,12,13,14
    16,17,18,19

方法一

  • 直接从1~n,中间用if判断,如果不是5的倍数就把它们相加。
#include <stdio.h>
int main() { 
    int i, n, sum = 0;
    scanf("%d", &n);
    for(i = 1; i < n; i++){
        if(i%5 != 0){
            sum += i;
        }
    }
    printf("sum = %d", sum);
}

方法二

1,2,3,4
6,7,8,9
11,12,13,14
16,17,18,19

  • 通过上面数字可以发现:1+19=20;2+18=20;3+17=20...
  • 一行有4个数字。头部和尾部相加等于一个新的数字,这样相加数字就少了一半(现在变成2排4列,一共8个数字,并且这8个数字都是20)。
  • 最后的和就是8 * 20 = 160
posted @ 2021-11-15 14:51  MrFlySand-飞沙  阅读(74)  评论(0编辑  收藏  举报