#include<stdio.h>
int kaijo_kansu(int a)
{
int kaijo = 1;
while(a > 0)
{
kaijo =kaijo * a;
a--;
}
return kaijo;
}
int ruijo_kansu(int a,int b)
{
int ruijo = 1;
int count;
for ( count = 1; count <= b; count++ )
{
ruijo = ruijo * a;
}
return ruijo;
}
int main(void)
{
int seisu,kaijo,ruijo,beki;
printf("階乗を算出します\n正の整数を入力してください"); printf("この数の累乗も算出します\n何乗しますか");
kaijo = kaijo_kansu(seisu);
ruijo = ruijo_kansu(seisu, beki);
printf("%dの階乗は%dで、%dの%d乗は%dです",seisu
,kaijo
,seisu
,beki
,ruijo
);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50IGthaWpvX2thbnN1KGludCBhKQp7CglpbnQga2Fpam8gPSAxOwoJCgkgd2hpbGUoYSA+IDApCgkgewoJIAlrYWlqbyA9a2Fpam8gKiBhOwoJIAlhLS07CgkgfQoJIAoJIHJldHVybiBrYWlqbzsKfQoKaW50IHJ1aWpvX2thbnN1KGludCBhLGludCBiKQp7CglpbnQgcnVpam8gPSAxOwoJaW50IGNvdW50OwoJCglmb3IgKCBjb3VudCA9IDE7IGNvdW50IDw9IGI7IGNvdW50KysgKQoJewoJCXJ1aWpvID0gcnVpam8gKiBhOwoJfQoJCglyZXR1cm4gcnVpam87Cn0KCmludCBtYWluKHZvaWQpCnsKCWludCBzZWlzdSxrYWlqbyxydWlqbyxiZWtpOwoJCglwcmludGYoIumajuS5l+OCkueul+WHuuOBl+OBvuOBmVxu5q2j44Gu5pW05pWw44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEIik7CglzY2FuZigiJWQiLCZzZWlzdSk7CglwcmludGYoIuOBk+OBruaVsOOBrue0r+S5l+OCgueul+WHuuOBl+OBvuOBmVxu5L2V5LmX44GX44G+44GZ44GLIik7CglzY2FuZigiJWQiLCZiZWtpKTsKCQoJa2Fpam8gPSBrYWlqb19rYW5zdShzZWlzdSk7CglydWlqbyA9IHJ1aWpvX2thbnN1KHNlaXN1LCBiZWtpKTsKCXByaW50ZigiJWTjga7pmo7kuZfjga8lZOOBp+OAgSVk44GuJWTkuZfjga8lZOOBp+OBmSIsc2Vpc3Usa2Fpam8sc2Vpc3UsYmVraSxydWlqbyk7CgkKCXJldHVybiAwOwp9