github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/Unknwon/com/math.go (about)

     1  // Copyright 2014 com authors
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License"): you may
     4  // not use this file except in compliance with the License. You may obtain
     5  // a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
    11  // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
    12  // License for the specific language governing permissions and limitations
    13  // under the License.
    14  
    15  package com
    16  
    17  // PowInt is int type of math.Pow function. 
    18  func PowInt(x int, y int) int {
    19  	if y <= 0 {
    20  		return 1
    21  	} else {
    22  		if y % 2 == 0 {
    23  			sqrt := PowInt(x, y/2)
    24  			return sqrt * sqrt
    25  		} else {
    26  			return PowInt(x, y-1) * x
    27  		}
    28  	}
    29  }