Esempio n. 1
0
int MyPower(int base, int exponent)
{
  if(exponent==0)
    return 1;
  else if(exponent==1)
    return base;
  else if(exponent%2==1)
    return base*MyPower(base, exponent-1);
  else
    {
      double SquareRoot = MyPower(base, exponent/2);
      return SquareRoot*SquareRoot;
    }
}
Esempio n. 2
0
void binaryExpr(TknKind op) /* 이항 연산 */
{
  double d = 0, d2 = stk.pop(), d1 = stk.pop();

  if ((op==Divi || op==Mod || op==IntDivi) && d2==0)
    err_exit("0으로 나누었습니다.");

	switch (op) {
		case Plus:			 d = d1 + d2;  break;
		case Minus:			 d = d1 - d2;  break;
		case Multi:			 d = d1 * d2;  break;
		case Divi:			 d = d1 / d2;  break;
		case Mod:			 d = (int)d1 % (int)d2; break;
		case IntDivi:		 d = (int)d1 / (int)d2; break;
		case Less:			 d = d1 <  d2; break;
		case LessEq:		 d = d1 <= d2; break;
		case Great:			 d = d1 >  d2; break;
		case GreatEq:		d = d1 >= d2; break;
		case Equal:			d = d1 == d2; break;
		case NotEq:			 d = d1 != d2; break;
		case And:			 d = d1 && d2; break;
		case Or:		    d = d1 || d2; break;
		case ExclusiveOr:	d = (int)d1 ^ (int)d2; break;	// Custom
		case Power:			d = (double)MyPower((int)d1, (int)d2); break;	// Custom
		case GCD:			d = (double)MyGCD((int)d1, (int)d2); break;	// Custom AND Push

  }
  stk.push(d);
}
Esempio n. 3
0
int main()
{
    int x = 5, y =2;
    printf("%d power %d is %ld\n", x, y, MyPower(x,y));
    printf("%d factorial is %ld\n", x, MyFactorial(x));
    printf("%d is %0.2f%% of %d\n", y, MyPercentage(y, x), x);
    return 0;
}
Esempio n. 4
0
int main(void)
{
  double MinInt = 1.0f;
  double MaxInt = 10000.0f;

  int TestNumber = 21;

  int msqrt  = MySqrt(TestNumber, MinInt, MaxInt);
  int mpower = MyPower(TestNumber, 3);
  int mmul   = MyMultiplication(TestNumber, 3);
  int mdiv   = MyDivision(TestNumber, 4, MinInt, TestNumber);

  std::cout << msqrt  << std::endl;
  std::cout << mpower << std::endl;
  std::cout << mmul   << std::endl;
  std::cout << mdiv   << std::endl;
}