using System;
namespace cs_ganri
{
///
/// Class1 ‚ÌŠT—v‚Ìà–¾‚Å‚·B
///
public class GanriHensai
{
///
/// ŒŽŠz•ÔÏŠz
///
/// Š—vŽ‘‹à
/// •Ôωñ”
/// ŒŽ—˜
/// Œ³—˜ž‚ÝŒŽŠz•ÔÏŠz
public static int GetHensai(int Ganpon, int HensaiKaisu, double Geturi){
//Excel‚ÌPMTŠÖ”‚Æ“¯‚¶
double theTemp;
theTemp = (double)Ganpon * (Geturi / ((double)1 - (Math.Pow(((double)1 + Geturi),(double)HensaiKaisu))));
return 0 - (int)theTemp;
}
public static int GetRisokuSum(int SouKaisu, int HensaiGaku, int Ganpon){
return SouKaisu * HensaiGaku - Ganpon;
}
///
/// ŽcŠz‚ð•Ô‚·
///
/// Š—vŽ‘‹à
/// Œ³—˜ž‚ÝŒŽŠz•ÔÏŠz
/// ŒŽ—˜
/// ‰½‰ñ–Ú‚Ì•ÔÏ
/// ŽcŠz‚ð•Ô‚·
public static int GetZansai(int Ganpon, int Hensai, double Geturi, int Kaisu){
double theTemp;
theTemp = (Math.Pow(((double)1 + Geturi),(double)Kaisu) * ((double)Ganpon - (double)Hensai / Geturi) + (double)Hensai / Geturi);
return Convert.ToInt32(theTemp);
}
///
/// ŒŽ•ÔÏŒ³‹àŠz‚ð•Ô‚·
///
/// Š—vŽ‘‹à
/// ŒŽŠz•ÔÏŠz
/// ŒŽ—˜
/// ‰½‰ñ–ڂ̉ñ”
/// ŒŽŠzŒ³‹à•ÔÏŠz‚ð•Ô‚·
public static int GetGankin(int Ganpon, int Hensai, double Geturi, int Kaisu){
//Žx•¥‚¢‘O‚ÌŽcÂ|Žx•¥‚¢Œã‚ÌŽcÂ
int theGankin;
if(Kaisu > 1){
theGankin = GetZansai(Ganpon,Hensai,Geturi,Kaisu - 1)
- GetZansai(Ganpon,Hensai,Geturi,Kaisu);
}else{
theGankin = Ganpon - GetZansai(Ganpon,Hensai,Geturi,Kaisu);
}
return theGankin;
}
///
/// ŒŽŠz—˜‘§‚ð•Ô‚·
///
/// ŒŽŠzŒ³—˜ž‚Ý•ÔÏŠz
/// ŒŽŠzŒ³‹àŠz
/// ŒŽŠz—˜‘§Šz‚ð•Ô‚·
public static int GetRisoku(int TukiHensai, int Gankin){
return TukiHensai - Gankin;
}
}
}