C再帰関数を使用して指定された数を反転するプログラム
「再帰関数」は、関数の本体で再び自分自身を呼び出すものです。
たとえば、
-
1からNまでのすべての整数の積である整数「N」の階乗を計算する関数ファクト()。
-
引数が1(または)0のfact()の場合、関数は1を返します。それ以外の場合は、n * fact(n-1)を返します。これは、「n」が1に等しくなるまで発生します。
Fact (5) =5* fact (4) =5*4*3* fact (3) =5*4*3*2* fact (2) =5*4*3*2*1 fact (1) =5*4*3*2*1 = 120.
例
以下は、再帰関数を使用して数値を反転するためのCプログラムです-
#include<stdio.h> main ( ){ int n,f; int fact (int); clrscr ( ); printf ("enter a number"); scanf ("%d", &n); f= fact (n); printf (factorial value = %d",f); } int fact (int n){ int f; if ( ( n==1) || (n==0)) return 1; else f= n*fact (n-1); return f; }
出力
出力は以下のとおりです-
Enter a number 5 Factorial value = 120
以下に示すのは、再帰関数を使用して特定の数を逆にする別のCプログラムです-
#include<stdio.h> int sum=0,rem; int main(){ int num,revNum; printf("enter number:\n"); scanf("%d",&num); revNum=revNumFunction(num);//calling function to reverse the given number printf("the number after reverse :%d",revNum); return 0; } revNumFunction(int num){ if(num){ rem=num%10; sum=sum*10+rem; revNum(num/10); } else return sum; }
出力
出力は次のとおりです-
enter number: 1357 the number after reverse is :7531
-
与えられた数を単語に変換するCプログラム
数値で構成される文字列が与えられた場合、タスクはそれらの与えられた数値を単語で隠すことです。 入力「361」があるように。その場合、出力は「三百六十一」という言葉である必要があります。次の問題を解決するには、1、数万、数千などの数と場所を覚えておく必要があります。 コードは最大4桁の数字、つまり0〜9999のみをサポートします。したがって、入力は0〜9999である必要があります。 場所が-のようになるように1,111を考えてみましょう 例 Input: “1234” Output: one thousand two hundred thirty four
-
プラス完全数をチェックするCプログラム
n桁の数xが与えられた場合、私たちのタスクは、与えられた数のプラス完全数かどうかを確認することです。数値がプラス完全数であることを確認するために、すべての桁のn乗d(d ^ n)を見つけて、すべての桁を合計します。合計がnに等しい場合、その数値はプラス完全数です。プラス完全数は、任意の数のアームストロングを見つけるのと似ています。 以下の例のように- 例 Input: 163 Output: Number is not a perfect_number Explanation: 1^3 + 6^3 + 3^3 is not equal to 163 Input: 371 Output: