1からnまでのすべての数値の桁の合計を計算します
この問題では、1からnの範囲のすべての数値の桁の合計を見つける必要があります。たとえば、54の桁の合計は5 + 4 =9です。このように、すべての数値とそれらの桁の合計を見つける必要があります。
sum(10 d -1)=sum(10 d-1 -1)* 10 + 45 *(10 d-1 )
入力と出力
Input: This algorithm takes the upper limit of the range, say it is 20. Output: Sum of digits in all numbers from 1 to n. Here the result is 102
アルゴリズム
digitSumInRange(n)
入力: 範囲の上限。
出力- 範囲(1-n)のすべての数値の桁の合計。
Begin if n < 10, then return n(n+1)/2 digit := number of digits in number d := digit – 1 define place array of size digit place[0] := 0 place[1] := 45 for i := 2 to d, do place[i] := place[i-1]*10 + 45 * ceiling(10^(i-1)) power := ceiling(10^d) msd := n/power res := msd*place[d] + (msd*(msd-1)/2)*power + msd*(1+n mod power) + digitSumInRange(n mod power) return res done End>
例
#include<iostream> #include<cmath> using namespace std; int digitSumInRange(int n) { if (n<10) return n*(n+1)/2; //when one digit number find sum with formula int digit = log10(n)+1; //number of digits in number int d = digit-1; //decrease digit count by 1 int *place = new int[d+1]; //create array to store sum upto 1 to 10^place[i] place[0] = 0; place[1] = 45; for (int i=2; i<=d; i++) place[i] = place[i-1]*10 + 45*ceil(pow(10,i-1)); int power = ceil(pow(10, d)); //computing the power of 10 int msd = n/power; //find most significant digit return msd*place[d] + (msd*(msd-1)/2)*power + msd*(1+n%power) + digitSumInRange(n%power); //recursively find the sum } int main() { int n; cout << "Enter upper limit of the range: "; cin >> n; cout << "Sum of digits in range (1 to " << n << ") is: " << digitSumInRange(n); }
出力
Enter upper limit of the range: 20 Sum of digits in range (1 to 20) is: 102
-
1からNまでのすべての素数を表示するJavaプログラム
この記事では、Javaで1からNまでのすべての素数を表示する方法を理解します。 1から無限大までのすべての可能な正の数は自然数と呼ばれます。素数は、1とそれ自体が2つしかない特殊な数であり、他の数で割ることはできません。 唯一の因数が1である場合、その数は素数です。 11は素数です。その因数は1と11そのものです。素数の例としては、2、3、5、7、11、13などがあります。 2は唯一の偶数の素数です。他のすべての素数は奇数です。 以下は同じのデモンストレーションです- 入力 入力が-であると仮定します Enter the value of n :10 出力 必要な出力は-になり
-
Python –数値から後部K桁を抽出
数値から後部のK桁を抽出する必要がある場合は、単純なリスト内包表記、モジュロ演算子、および「**」演算子が使用されます。 以下は同じのデモンストレーションです- 例 my_list = [51645, 24567, 36743, 89452, 2122] print("The list is :") print(my_list) K = 3 print("The value of K is ") print(K) my_result = [element % (10 ** K) for element in my_list] print(&qu