アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めて質問をします。
C++で「x円を年利r%で預金し、そのまま預けておいたとき、何年で2倍になるか」
と言うプログラミングを書きたいのですが、どなたか教えて下さい。
ちなみに預金額と年利はキーボードから読み込みたいです・・・

A 回答 (3件)

全て wolvさんが答えているところを、まとめてこんな


ところです。
ちなみに当方は対数計算等も全くできず、完全に他人の
フンドシによる答えです。これでよろしければ
感謝は wolvサンの方にして下さい。では


#include<stdio.h>
#include<math.h>

int year(int en, float r){
int y=0;
double bai=1;

while(bai<2){
y++;
bai *=1+r/100.0;
printf("%d年後:%.6f倍 %d円\n", y, bai, (int)(en*bai));
}
return y;
}
int main(void)
{
int en;
float r;
double y;
while(1){
printf("預金額(円)…");
scanf("%d", &en);
printf("利率(%)…");
scanf("%f", &r);
year(en, r);
y = log(2)/log(1+r/100);
printf("year=%f年\n",y);
}
return 0;
}
    • good
    • 0

logを使わずに,プログラミングで年数を求めるなら,


(C++ではなく,Cですが……)

int year(float r){
int y=0;
float bai=1;

while(bai<2){
y++;
bai*=1+r/100.0;
}
return y;
}

のように,まず年数を求める関数をつくり,

main(){
変数の宣言
while(1){
rの入力
y=year(r);
printf("year=%d\n",y);
}
}
のようにすればいいと思います.
変数の宣言部分と
rの入力の部分は,省略しました.
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
でも、これってMicrosoft Visual C++で、できますかね・・・

お礼日時:2002/06/06 01:50

C++ ではないのですが……



実は,金額xは関係ありません.
年利r(%)が決まれば,何年で2倍になるかがきまります.

1年後は,(1+r/100)倍,
2年後は,{(1+r/100)^2}倍,(^2は2乗を表す.)
n年後は,{(1+r/100)^n}倍,(^nはn乗を表す.)
ちょうど2倍になるのがn年後だとすると,
2=(1+r/100)^n なので,
log(2)=log{(1+r/100)^n}
= n*log(1+r/100)
よって,
n = log(2)/log(1+r/100)
となります.

一番簡単なのは,Excelなどで,
A1セルに年利r(%)を,B1セルに =log(2)/log(1+A1/100)
と入力することでしょう.B1をB2,B3,B4,...にコピーすれば,
A2,A3,A4に入力した年利に対する年数が対応するB列のセルに表示されます.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!