/**************************/
/* 2のべき乗を計算する */
/* (関数の再帰呼び出し) */
/* (グローバル変数使用) */
/**************************/
#include <stdio.h>
#include <stdlib.h>
void beki2(void); // 2倍を繰り返す
int i; // 乗数カウンタ
long m; // 2のn乗
void main( )
/*----------------*/
/* 主プログラム */
/*----------------*/
{
char c[128];
int n; // 乗数n
printf("\n\n\n★2のべき乗(整数)★\n");
printf("\n何乗しますか: "); fflush(stdout);
gets(c); n=atoi(c); // キーボードから入力
m=1; i=n; // 初期値
beki2( ); // 2倍を繰り返す
printf("\n\n【結果】2 の %d 乗は %ld です\n\n",n,m);
}
void beki2( )
/*------------------*/
/* 2倍を繰り返す */
/*------------------*/
{
printf("\nm=%d",m); // 途中経過表示
if ( i>=1 ) // iの値が1以上のとき
{
m*=2; i--;
beki2( ); // 2倍を繰り返す
}
}
|