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

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

  1. 与えられた数を単語に変換するCプログラム

    数値で構成される文字列が与えられた場合、タスクはそれらの与えられた数値を単語で隠すことです。 入力「361​​」があるように。その場合、出力は「三百六十一」という言葉である必要があります。次の問題を解決するには、1、数万、数千などの数と場所を覚えておく必要があります。 コードは最大4桁の数字、つまり0〜9999のみをサポートします。したがって、入力は0〜9999である必要があります。 場所が-のようになるように1,111を考えてみましょう 例 Input: “1234” Output: one thousand two hundred thirty four

  2. プラス完全数をチェックする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: