ホームページ >バックエンド開発 >C++ >次の内容を中国語に翻訳してください: C プログラミングでは、2 または 5 で割り切れる N 内の数値の合計を求めます。

次の内容を中国語に翻訳してください: C プログラミングでは、2 または 5 で割り切れる N 内の数値の合計を求めます。

WBOY
WBOY転載
2023-09-20 08:25:061264ブラウズ

次の内容を中国語に翻訳してください: C プログラミングでは、2 または 5 で割り切れる N 内の数値の合計を求めます。

2 または 5 で割り切れる n 個の自然数の和は、2 で割り切れる N 個の自然数すべての和とすべての和を求めることで求められます。 N以内で5で割れる自然数。探しに来てください。これら 2 つの合計を、N 内の 10 で割り切れる自然数の合計で引きます。これが私たちが望むことです。この方法は、n の大きな値の合計を見つける効率的な方法です。

ループと条件文を使用して、2 または 5 で割り切れるすべての数値を合計することを考えている人もいるでしょう。しかし、このアプローチは次数 n の時間計算量があるため非効率的です。これは、n の値が大きい場合、プログラムはループを n 回実行することを意味します。そしてこのようにするとプログラムが重くなります。

2で割り切れるn個の自然数の和の式を求めてください

Sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2

5で割り切れるn個の自然数の和の公式を求めてください

Sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2

5 で割り切れる n 個の自然数の和を求める式を求めます。 10 で割り切れる自然数の和を求める公式

Sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2

期待される出力

Sum = Sum2 + Sum5 - Sum10

Example

#include <stdio.h>
int main() {
   int n = 25;
   long int sum2, sum5, sum10;
   sum2 = ((n / 2) * (4 + (n / 2 - 1) * 2)) / 2;
   sum5 = ((n / 5) * (10 + (n / 5 - 1) * 5)) / 2;
   sum10 = ((n / 10) * (20 + (n / 10 - 1) * 10)) / 2;
   long int sum = sum2 + sum5 - sum10;
   printf("Sum is %d", sum);
   return 0;
}

出力

Sum is 201

以上が次の内容を中国語に翻訳してください: C プログラミングでは、2 または 5 で割り切れる N 内の数値の合計を求めます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。