C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++で2からN/2までのすべての基数で書き込まれた数値Nの桁の合計


この問題では、数値Nが与えられます。私たちのタスクは、2からN/2までの基数の数値Nの桁の合計を見つけるプログラムを作成することです。

したがって、数値の基数を2からN / 2までのすべての基数に変換する必要があります。つまり、n =9の場合、基数は2、3、4になります。そして、これらの基数のすべての桁の合計を求めます。

>

問題を理解するために例を見てみましょう

入力

N = 5

出力

2

説明

base from 2 to N/2 is 2.
52 = 101, sum of digits is 2.

この問題を解決するために、2からN/2までのすべての数値をベースとします。次に、桁の合計を計算するために、Nを基数で繰り返し除算します。つまり、N =N / baseであり、余りの値を合計に加算します。次に、各塩基で見つかった合計値を加算して、結果を取得します。

ソリューションの動作を説明するプログラム

#include <iostream>
using namespace std;
int findBaseSum(int n, int base, int &sum){
   while (n > 0) {
      sum += n % base;
      n /= base;
   }
return sum;
}
void CalcSumOfBaseDigits(int n, int &sum){
   for (int base = 2; base <= n / 2; base++)
      findBaseSum(n, base, sum);
}
int main(){
   int N = 11;
   int sum = 0;
   CalcSumOfBaseDigits(N, sum);
   cout<<"The sum of digits of "<<N<<" written in all bases from 2 to "<<(N/2)<<" is "<<sum;
   return 0;
}

出力

The sum of digits of 11 written in all bases from 2 to 5 is 14

  1. シリーズ1/1の合計を見つけるC++プログラム! + 2/2! + 3/3! + 4/4! +……n/n!

    ここでは、与えられたシリーズの合計を取得する方法を見ていきます。 nの値はユーザーによって指定されます。階乗関数を作成することでこの問題を解決し、ループの各ステップで階乗を取得できます。しかし、階乗計算は通常の加算よりもコストのかかる作業です。次の階乗では前の階乗項を使用します。 3のように!は(3 * 2 * 1)、および4!は4*3!です。だから私たちが3つを保存すると!いくつかの変数に、それを使用して次の数値を追加することで、次の階乗を簡単に取得できます。 アルゴリズム sum_series_fact(n) begin    res := 0   &nbs

  2. 指定された数値の桁を合計するC++プログラム

    これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() {    int x, s = 0;    cout << "Enter the number : ";    cin >> x;    while (x != 0) {       s = s + x % 10;       x = x / 10;