Leap, Difference of Squares, Grains, Collatz Conjecture, Queen Attack, Darts, Hamming, and Space Age completed yesterday. Binary and Linked List completed today.
46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
#include "space_age.h"
|
|
|
|
const float SEC_TO_EARTH_YEAR = 31557600.0f;
|
|
const float EARTH_TO_MERCURY = 0.2408467f;
|
|
const float EARTH_TO_VENUS = 0.61519726f;
|
|
const float EARTH_TO_EARTH = 1.0f;
|
|
const float EARTH_TO_MARS = 1.8808158f;
|
|
const float EARTH_TO_JUPITER = 11.862615f;
|
|
const float EARTH_TO_SATURN = 29.447498f;
|
|
const float EARTH_TO_URANUS = 84.016846f;
|
|
const float EARTH_TO_NEPTUNE = 164.79132f;
|
|
|
|
|
|
float age(planet_t planet, int64_t seconds){
|
|
float return_value;
|
|
float year = seconds / SEC_TO_EARTH_YEAR;
|
|
switch(planet){
|
|
case MERCURY:
|
|
return_value = year / EARTH_TO_MERCURY;
|
|
break;
|
|
case VENUS:
|
|
return_value = year / EARTH_TO_VENUS;
|
|
break;
|
|
case EARTH:
|
|
return_value = year / EARTH_TO_EARTH;
|
|
break;
|
|
case MARS:
|
|
return_value = year / EARTH_TO_MARS;
|
|
break;
|
|
case JUPITER:
|
|
return_value = year / EARTH_TO_JUPITER;
|
|
break;
|
|
case SATURN:
|
|
return_value = year / EARTH_TO_SATURN;
|
|
break;
|
|
case URANUS:
|
|
return_value = year / EARTH_TO_URANUS;
|
|
break;
|
|
case NEPTUNE:
|
|
return_value = year / EARTH_TO_NEPTUNE;
|
|
break;
|
|
default:
|
|
return_value = year;
|
|
}
|
|
return return_value;
|
|
}
|