#include "library.h" void speak(int n) { if (n==0) print("zero"); else if (n==1) print("one"); else if (n==2) print("two"); else if (n==3) print("three"); else if (n==4) print("four"); else if (n==5) print("five"); else if (n==6) print("six"); else if (n==7) print("seven"); else if (n==8) print("eight"); else if (n==9) print("nine"); else if (n==10) print("ten"); else if (n==11) print("eleven"); else if (n==12) print("twelve"); else if (n==13) print("thirteen"); else if (n==14 || n==16 || n==17 || n==19) { speak(n-10); print("teen"); } else if (n==15) print("fifteen"); else if (n==18) print("eighteen"); else if (n==20) print("twenty"); else if (n==30) print("thirty"); else if (n==40) print("forty"); else if (n==50) print("fifty"); else if (n==80) print("eighty"); else if (n==60 || n==70 || n==90) { speak(n/10); print("ty"); } else if (n>=21 && n<=99) { const int ty = n - n%10; // this just removes last digit, e.g. 37 -> 30 speak(ty); print(" "); speak(n-ty); } else if (n>=100 && n<=999) { speak(n/100); const int lasttwo = n%100; if (lasttwo == 0) print(" hundred"); else { print(" hundred and "); speak(lasttwo); } } else if (n>=1000 && n<=999999) { speak(n/1000); const int lastthree = n%1000; print(" thousand"); if (lastthree != 0) { print(" "); speak(lastthree); } } else if (n>=1000000 && n<999999999) { speak(n/1000000); const int lastsix = n%1000000; print(" million"); if (lastsix != 0) { print(" "); speak(lastsix); } } else if (n>=1000000000) { speak(n/1000000000); const int lastnine = n%1000000000; print(" billion"); if (lastnine != 0) { print(" "); speak(lastnine); } } else // n must be negative then { print("minus "); speak(-n); } }