#include<stdio.h>
#include<math.h>
double danli(double i,int N,double P)
{
double nlx,F;
nlx = P*i;
F = nlx*N + P;
return F;
}
double fuli(double i,int W,int N,double P)
{
double F;
i=pow(1+i/W,W)-1;
F=P*pow((i+1),N);
return F;
}
double gusuan(double i,int W,int N,double F)
{
double P;
i = pow(1+i/W,W)-1;
P = F/pow((i+1),N);
return P;
}
double shijian(double P,double i,double F)
{
double N,x;
x=F/P;
N=(log(x))/(log(i+1));
return N;
}
double nianxian(double P,double N,double F)
{
double i;
//i = W*(pow(pow(F/P,1.0/N),1.0/W)-1.0);
i = pow(F/P,1.0/N)-1.0;
return i;
}
void main()
{
double P,F1,F,i; //P是本金,F是收益,i年利率
int N,W,ch2; //是期限
while(1)
{
printf("\t\t***************歡迎使用複利電腦*************\n\n");
printf("\t\t| -----1--------為複利--------------- |\n\n");
printf("\t\t| -----2--------為單利--------------- |\n\n");
printf("\t\t| -----3-------為估算---------------- |\n\n");
printf("\t\t| -----4-------為年限---------------- |\n\n");
printf("\t\t| -----5-------為年利率-------------- |\n\n");
printf("\t\t| -----0-------為退出---------------- |\n\n");
printf("請選擇\n");
scanf("%d",&ch2);//控制選擇
switch(ch2){
case 1:
printf("請輸入本金:\n");
scanf("%lf",&P);
printf("請輸入年利率\n");
scanf("%lf",&i);
printf("請輸入年限:\n");
scanf("%d",&N);
printf("請輸入複利次數:\n");
scanf("%d",&W);
F1 = fuli(i,W,N,P); break;
case 2:
printf("請輸入本金:\n");
scanf("%lf",&P);
printf("請輸入年利率\n");
scanf("%lf",&i);
printf("請輸入年限:\n");
scanf("%d",&N);
F1 = danli(i,N,P); break;
case 3:
printf("請輸入本利\n");
scanf("%lf",&F);
printf("請輸入年利率\n");
scanf("%lf",&i);
printf("請輸入年限:\n");
scanf("%d",&N);
printf("請輸入複利次數:\n");
scanf("%d",&W);
F1 = gusuan(i,W,N,F);
break;
case 4:
printf("請輸入本金\n");
scanf("%lf",&P);
printf("請輸入年利率\n");
scanf("%lf",&i);
printf("請輸入本利\n");
scanf("%lf",&F);
F1=shijian(P,i,F);
break;
case 5:
printf("請輸入本金:\n");
scanf("%lf",&P);
printf("請輸入本利:\n");
scanf("%lf",&F);
printf("請輸入年限\n");
scanf("%d",&N);
F1=nianxian(P,N,F);
// i=pow((F/P),(1.0/N))-1;
break;
case 0:break;
}
if(ch2==0)
break;
printf("結果為:%.2lf\n",F1);
}
}