「コケいろ-Ohgas' Fortune」の編集履歴(バックアップ)一覧はこちら
「コケいろ-Ohgas' Fortune」(2010/04/25 (日) 14:24:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
struct sHow{
int Kind;
double Rate;
int Fee;
};
struct sData{
int FirstMoney;
int Years;
int KindNum;
sHow How[100];
};
int main(){
int m; // データセット数
double a=1;
scanf("%d",&m);
for(int i=0 ; i<m ; i++){
sData Data;
// 格納
scanf("%d",&Data.FirstMoney);
scanf("%d",&Data.Years);
scanf("%d",&Data.KindNum);
for(int j=0 ; j<Data.KindNum ; j++){
int kind,fee;
double rate=0;
scanf("%d %lf %d",&kind,&rate,&fee);
Data.How[j].Kind = kind;
Data.How[j].Rate = rate;
Data.How[j].Fee = fee;
}
// 計算
int max = Data.FirstMoney;
for(int j=0 ; j<Data.KindNum ; j++){
int a = Data.FirstMoney;
int b;
int ruikei = 0;
switch( Data.How[j].Kind ){
case 0: // 単利
for(int k=0 ; k<Data.Years ; k++){
b = (int)( a * Data.How[j].Rate );
a = a - Data.How[j].Fee;
ruikei += b;
}
a += ruikei;
break;
case 1: // 複利
for(int k=0 ; k<Data.Years ; k++){
b = (int)( a * Data.How[j].Rate );
a = a + b - Data.How[j].Fee;
}
break;
}
if( a>max ){
max = a;
}
}
printf("%d\n",max);
}
return 0;
}
//
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
struct sHow{
int Kind;
double Rate;
int Fee;
};
struct sData{
int FirstMoney;
int Years;
int KindNum;
sHow How[100];
};
int main(){
int m; // データセット数
double a=1;
scanf("%d",&m);
for(int i=0 ; i<m ; i++){
sData Data;
// 格納
scanf("%d",&Data.FirstMoney);
scanf("%d",&Data.Years);
scanf("%d",&Data.KindNum);
for(int j=0 ; j<Data.KindNum ; j++){
int kind,fee;
double rate=0;
scanf("%d %lf %d",&kind,&rate,&fee);
Data.How[j].Kind = kind;
Data.How[j].Rate = rate;
Data.How[j].Fee = fee;
}
// 計算
int max = Data.FirstMoney;
for(int j=0 ; j<Data.KindNum ; j++){
int a = Data.FirstMoney;
int b;
int ruikei = 0;
switch( Data.How[j].Kind ){
case 0: // 単利
for(int k=0 ; k<Data.Years ; k++){
b = (int)( a * Data.How[j].Rate );
a = a - Data.How[j].Fee;
ruikei += b;
}
a += ruikei;
break;
case 1: // 複利
for(int k=0 ; k<Data.Years ; k++){
b = (int)( a * Data.How[j].Rate );
a = a + b - Data.How[j].Fee;
}
break;
}
if( a>max ){
max = a;
}
}
printf("%d\n",max);
}
return 0;
}
表示オプション
横に並べて表示:
変化行の前後のみ表示: