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