>>412 の修正
負数に対する除算の丸め方向が違っても大丈夫なように変更
// (-1)/10 の結果は (0 余り -1) もしくは (-1 余り 9) のいずれか
char *myatoi(int n)
{
char buf[20+1]="", *p=&buf[sizeof(buf)/sizeof(buf[0])-1];
int sign=1, m;

if(n<0) sign=-1;
m=(10+sign*(n%10))%10;

*--p='0'+m;

for(n=sign*(n-sign*m)/10;n!=0;n/=10)
{
*--p='0'+n%10;
}
if(sign==-1) *--p='-';
return strdup(p);
}