기금넷 공식사이트 - 복권 조회 - 다음 C 언어 문제의 코드는 어떻게 쓰나요?

다음 C 언어 문제의 코드는 어떻게 쓰나요?

S< 가 K 일 때, 모든 상자 옷은 K 보다 작기 때문에 출력이 없습니다.

S=k 일 때, 모든 상자의 옷은 마침 K, 즉 수출은 을 눌러 섹션을 인쇄할 수도 있습니다

S>K 인 경우 다음 할당 시나리오를 고려하여 연속 상자의 총 옷 수가 k 가 되지 않도록 합니다.

K 상자마다 조를 나누다. 1 옷만 k- 1 개 상자에 할당되고 k+ 1 개 옷만 k 번째 상자에 할당됩니다.

이렇게 하면 연속 상자 중 하나에 있는 총 옷 수가 최대 k- 1 또는 최소한 k+ 1 이 됩니다.

그리고 이 방안에 필요한 옷의 총수는 가장 적다.

그룹당 총 옷 수는 k- 1+k+ 1=2k 이므로 n 개 상자를 n/k 그룹으로 나누고 나머지 n%k 개 상자도 1 조각입니다.

그럼 이 방안에 필요한 총 옷 수는 합계 = (n/k) * 2 * k+n% k 입니다.

S & ltSum 인 경우 그룹 내의 k 번째 상자는 k+ 1 의류에 할당할 수 없습니다.

이 상자와 그 옆에 있는 몇 개의 상자는 K 와 의 연속 상자를 형성할 수 있습니다. 즉, 출력은 다음과 같습니다. 을 눌러 섹션을 인쇄할 수도 있습니다

S=sum 인 경우 위의 할당 시나리오가 존재할 뿐 출력이 없음을 의미합니다.

S & gtSum 인 경우 여분의 옷을 그룹 내의 k 번째 상자에 할당할 수 있으므로 옷 수가 k+ 1 보다 큽니다.

그러나 여전히 연속 상자의 총 옷 수가 K 가 아닌 출력 no 를 만족시킵니다.

요약하면 c 코드 및 실행 결과는 다음과 같습니다.

출력이 견본에 맞으니 받아주시기 바랍니다 ~

추가 소스 코드:

# include & ltstdio.h & gt

Typedef long long ll

Int main() {

Int T, RES

Ll s, n, k, sum

Scanf("%d ",& ampt);

While (T-) {

Scanf("%lld%lld%lld ",& amps & amp;; N & amp;; K);

RES = 0;;

If(s & gt;; K) {

합계 = (n/k) * 2 * k+n% k;

If(s & lt;; 합계)

Res =1;

}

Else if (s == k)

Res =1;

If (res)?

Printf ("yes \ n");

그렇지 않으면요?

Printf ("no \ n");

}

0 을 반환합니다

}