Cプログラムで数字の配列として表される数に1を追加しますか?
このセクションでは、1つの興味深い問題があります。 1つの番号が与えられていると仮定します。この数を1増やす必要があります。これは非常に簡単な作業です。ただし、ここでは数値を配列として配置します。その番号の各桁は、配列の要素として配置されます。番号が512の場合、{5、1、2}として保存されます。また、再帰的アプローチを使用して数を増やす必要があります。明確なアイデアを得るためのアルゴリズムを見てみましょう。
アルゴリズム
増分(arr、n、インデックス)-
Initially the default value of index is 0 begin if index < n, then if arr[index] < 9, then arr[index] := arr[index] + 1 else arr[index] := 0 increment(arr, n, index + 1) end if if index = n, then arr[n] := 1 n := n + 1 end if end
例
#include <iostream> #include <cmath> #define MAX 20 using namespace std; void increment(int num_arr[], int &n, int index = 0){ if(index < n){ if(num_arr[index] < 9){ //if digit is less than 9, add 1 num_arr[index]++; }else{ //otherwise increase number recursively num_arr[index] = 0; increment(num_arr, n, index+1); } } if(index == n){ num_arr[n] = 1; //add extra carry n++; //increase n } } void dispNumber(int num_arr[], int n){ for(int i = n-1; i>= 0; i--){ cout << num_arr[i]; } cout << endl; } int numToArr(int num_arr[], int number){ int i = 0; int n = log10(number) + 1; for(int i = i; i< n; i++){ num_arr[i] = number % 10; number /= 10; } return n; } main() { int number = 1782698599; int num_arr[MAX]; int n = numToArr(num_arr, number); cout << "Initial Number: "; dispNumber(num_arr, n); increment(num_arr, n); cout << "Final Number: "; dispNumber(num_arr, n); }
出力
Initial Number: 1782698599 Final Number: 1782698600
-
Pythonで1桁の数字になるまで数字の合計を見つけるプログラム
正の数nがあるとすると、そのすべての桁を加算して新しい数を取得します。ここで、この操作を10未満になるまで繰り返します。 したがって、入力が9625のような場合、出力は4になります。 これを解決するには、次の手順に従います- メソッドsolve()を定義します。これにはnがかかります n <10の場合、 return n s:=0 l:=(log(n)base 10 + 1)のフロア 0の場合、do s:=s +(n mod 10) n:=n/10の商 l:=l-1 解決を返す 理解を深めるために、次の実装を見てみましょう- 例 import math
-
配列を1つずつ循環的に回転させるPythonプログラム
与えられたユーザー入力配列。私たちのタスクは、周期的に回転することは、値を時計回りに回転させることを意味します。 例 Input: A=[1,2,3,4,5] Output=[5,1,2,3,4] アルゴリズム Step 1: input array element. Step 2: Store the last element in a variable say x. Step 3: Shift all elements one position ahead. Step 4: Replace first element of array with x. サンプルコード # Pyth