C++での桁の合計に従って数値を並べ替えます
このセクションでは、数字の合計に従って数値を並べ替える方法を説明します。したがって、数字の桁数が少ない場合は、最初に配置され、次に数字の合計が大きい数字が配置されます。
data = {14, 129, 501, 23, 0, 145} 並べ替えると、-
になります。data = {0, 14, 23, 501, 145, 129} ここでは、それらを並べ替えるための独自の比較ロジックを作成します。その比較ロジックは、C++STLの並べ替え関数で使用されます。
アルゴリズム
compare(num1, num2): Begin if sum of digits of num1 < sum of digits of num2, then return 1 return 0 End
例
#include<iostream>
#include<algorithm>
using namespace std;
int sumOfDigits(int n){
int sum = 0;
while(n){
sum += n%10;
n /= 10;
}
return sum;
}
int compare(int num1, int num2){
if(sumOfDigits(num1) < sumOfDigits(num2))
return 1;
return 0;
}
main(){
int data[] = {14, 129, 501, 23, 0, 145};
int n = sizeof(data)/sizeof(data[0]);
sort(data, data + n, compare);
for(int i = 0; i<n; i++){
cout << data[i] << " ";
}
} 出力
0 14 23 501 145 129
-
シェーカーソートを実行するC++プログラム
シェーカーソートは、指定されたデータをソートするために使用されます。シェーカーソートは、バブルソートとは異なり、配列を両方向に並べ替えます。このアルゴリズムの最悪の複雑さはO(n ^ 2)です。 アルゴリズム Begin ShakerSort() function has ‘arr’ the array of data and ‘n’ the number of values, in the argument list. // Implement Sorting algorithm using
-
指定された数値の桁を合計する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;