function execute( n, //預金をおろす頻度 m //引出額 ){ var ans=0 for(var i=m;;i++){ ans =calcurateDeposite(n-1,m,i); if(ans> 0){ return i; } } function calcurateDeposite( n, //n年間の預金 m, //引出額 b //初期の預金高 ){ var val=0; var term = n; if(n==1){ val = b; return val }else{ term=term-1 return (calcurateDeposite(term,m,b)-m)*1.05 } } }