A solution with no loops
Coddy의 수학 수수께끼 코스 레슨 — 20개 중 3번째.
이전 챌린지는 루프를 사용하여 쉽게 해결할 수 있습니다. 하지만 N이 크다면 - 예를 들어 N=10**9인 경우 - 실행 시간이 매우 길어질 수 있습니다.
만약 이전 챌린지를 루프 없이 해결했다면, 정말 훌륭합니다. 프로그래밍과 수학 모두에 매우 능숙하시군요. 그렇지 않다면, 이 레슨이 도움이 될 것입니다.
또 다른 방법은 각 등차수열의 합을 직접 계산하는 것입니다.
첫 번째 항 a1, 마지막 항 an, 그리고 항의 개수 n을 알고 있다면, 합계는 다음과 같습니다:
S = n * (a1+an)//2
챌린지
쉬움합계 공식을 사용하여 챌린지의 해답을 계산하세요.
정수 N을 입력으로 받아 N 미만의 3 또는 5의 배수의 합을 반환하는 함수 calc를 작성하세요.
예를 들어, N=10인 경우 함수는 23을 반환합니다.
팁 - 코드를 더 작은 함수들로 분리하세요.
직접 해보기
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
int r = calc(n);
printf("%d\n", r);
return 0;
}