一个计算收益复利的小例子, 用c语言简单编程, 如 test 30 20 40;
30以万为单位,20是年收益百分比,40是年数。
#include <stdio.h>
#include <stdlib.h>#define YEAR_GET_TYPE 0 // 年测试类型// 年的计算
#ifdef YEAR_GET_TYPE
#define NAME "YEAR" // 年名称
#define YEAR_TIMES 40 // 年数
#define YEAR_GET 20 // 年率
#else
// 月的计算
#define NAME "MOON" // 月名称
#define YEAR_TIMES 12 // 月数
#define YEAR_GET 3 // 月率
#endif//#define YEAR_WASTE 120000 // 年花费
//#define TATOL_NUM 1000000 // 总额#define YEAR_WASTE 0 // 年花费
#define TATOL_NUM 300000 // 总额int main(int argc, char* argv[])
{float fYearGet = ((float)YEAR_GET) / 100; // 百分比年率float fTatolNum = TATOL_NUM;int nYearNum = YEAR_TIMES;if (2 == argc){fTatolNum = atoi(argv[1])*10000;}else if (3 == argc){fTatolNum = atoi(argv[1]) * 10000;fYearGet = ((float)atoi(argv[2])) / 100; // 百分比年率}else if (4 == argc){fTatolNum = atoi(argv[1]) * 10000;fYearGet = ((float)atoi(argv[2])) / 100; // 百分比年率nYearNum = atoi(argv[3]);}printf("-----------------------------yearget------------------------------------\n");printf("test.exe 30 20 or test.exe 30 20 40 -----------\n");printf("TATOL_NUM:%.0fw ", fTatolNum/10000);printf("%s_GET:%.2f%%\n", NAME, fYearGet * 100);printf("%s_WASTE:%d ", NAME, YEAR_WASTE);printf("%s_TIMES:%d\n", NAME, nYearNum);printf("------------------------------------------------------------------------\n");// 总记录printf("%s%d tatol = %f \n", NAME, 0, fTatolNum);for (int i = 0; i < nYearNum; i++){// 计算剩余fTatolNum = fTatolNum * (1 + fYearGet) - YEAR_WASTE;//打印换行if ((i != 0) && (0 == i % 10)){printf("\n");}// 打印printf("%s%d tatol = %f \n", NAME, i + 1, fTatolNum); }getchar();return 0;
}
运行结果如下:
F:\Project\yearget\Release>test
-----------------------------yearget------------------------------------
test.exe 30 20 -----------
TATOL_NUM:30w YEAR_GET:20.00%
YEAR_WASTE:0 YEAR_TIMES:40
------------------------------------------------------------------------
YEAR0 tatol = 300000.000000
YEAR1 tatol = 360000.000000
YEAR2 tatol = 432000.031250
YEAR3 tatol = 518400.062500
YEAR4 tatol = 622080.125000
YEAR5 tatol = 746496.187500
YEAR6 tatol = 895795.437500
YEAR7 tatol = 1074954.625000
YEAR8 tatol = 1289945.625000
YEAR9 tatol = 1547934.750000
YEAR10 tatol = 1857521.750000YEAR11 tatol = 2229026.250000
YEAR12 tatol = 2674831.500000
YEAR13 tatol = 3209798.000000
YEAR14 tatol = 3851757.750000
YEAR15 tatol = 4622109.500000
YEAR16 tatol = 5546531.500000
YEAR17 tatol = 6655838.000000
YEAR18 tatol = 7987006.000000
YEAR19 tatol = 9584408.000000
YEAR20 tatol = 11501290.000000YEAR21 tatol = 13801549.000000
YEAR22 tatol = 16561859.000000
YEAR23 tatol = 19874232.000000
YEAR24 tatol = 23849080.000000
YEAR25 tatol = 28618898.000000
YEAR26 tatol = 34342680.000000
YEAR27 tatol = 41211216.000000
YEAR28 tatol = 49453460.000000
YEAR29 tatol = 59344156.000000
YEAR30 tatol = 71212992.000000YEAR31 tatol = 85455592.000000
YEAR32 tatol = 102546712.000000
YEAR33 tatol = 123056056.000000
YEAR34 tatol = 147667280.000000
YEAR35 tatol = 177200736.000000
YEAR36 tatol = 212640896.000000
YEAR37 tatol = 255169088.000000
YEAR38 tatol = 306202912.000000
YEAR39 tatol = 367443520.000000
YEAR40 tatol = 440932256.000000F:\Project\yearget\Release>test 1 10 100
-----------------------------yearget------------------------------------
test.exe 30 20 -----------
TATOL_NUM:1w YEAR_GET:10.00%
YEAR_WASTE:0 YEAR_TIMES:100
------------------------------------------------------------------------
YEAR0 tatol = 10000.000000
YEAR1 tatol = 11000.000000
YEAR2 tatol = 12100.000000
YEAR3 tatol = 13310.000000
YEAR4 tatol = 14641.000000
YEAR5 tatol = 16105.100586
YEAR6 tatol = 17715.611328
YEAR7 tatol = 19487.173828
YEAR8 tatol = 21435.892578
YEAR9 tatol = 23579.482422
YEAR10 tatol = 25937.431641YEAR11 tatol = 28531.175781
YEAR12 tatol = 31384.294922
YEAR13 tatol = 34522.726563
YEAR14 tatol = 37975.000000
YEAR15 tatol = 41772.500000
YEAR16 tatol = 45949.750000
YEAR17 tatol = 50544.726563
YEAR18 tatol = 55599.199219
YEAR19 tatol = 61159.121094
YEAR20 tatol = 67275.031250YEAR21 tatol = 74002.539063
YEAR22 tatol = 81402.796875
YEAR23 tatol = 89543.078125
YEAR24 tatol = 98497.390625
YEAR25 tatol = 108347.132813
YEAR26 tatol = 119181.851563
YEAR27 tatol = 131100.046875
YEAR28 tatol = 144210.062500
YEAR29 tatol = 158631.078125
YEAR30 tatol = 174494.187500YEAR31 tatol = 191943.609375
YEAR32 tatol = 211137.968750
YEAR33 tatol = 232251.765625
YEAR34 tatol = 255476.953125
YEAR35 tatol = 281024.656250
YEAR36 tatol = 309127.125000
YEAR37 tatol = 340039.843750
YEAR38 tatol = 374043.843750
YEAR39 tatol = 411448.250000
YEAR40 tatol = 452593.093750YEAR41 tatol = 497852.406250
YEAR42 tatol = 547637.687500
YEAR43 tatol = 602401.500000
YEAR44 tatol = 662641.687500
YEAR45 tatol = 728905.875000
YEAR46 tatol = 801796.500000
YEAR47 tatol = 881976.187500
YEAR48 tatol = 970173.812500
YEAR49 tatol = 1067191.250000
YEAR50 tatol = 1173910.375000YEAR51 tatol = 1291301.500000
YEAR52 tatol = 1420431.625000
YEAR53 tatol = 1562474.875000
YEAR54 tatol = 1718722.375000
YEAR55 tatol = 1890594.625000
YEAR56 tatol = 2079654.125000
YEAR57 tatol = 2287619.500000
YEAR58 tatol = 2516381.500000
YEAR59 tatol = 2768019.750000
YEAR60 tatol = 3044821.750000YEAR61 tatol = 3349304.000000
YEAR62 tatol = 3684234.500000
YEAR63 tatol = 4052658.000000
YEAR64 tatol = 4457924.000000
YEAR65 tatol = 4903716.500000
YEAR66 tatol = 5394088.500000
YEAR67 tatol = 5933497.500000
YEAR68 tatol = 6526847.500000
YEAR69 tatol = 7179532.500000
YEAR70 tatol = 7897486.000000YEAR71 tatol = 8687235.000000
YEAR72 tatol = 9555959.000000
YEAR73 tatol = 10511555.000000
YEAR74 tatol = 11562711.000000
YEAR75 tatol = 12718982.000000
YEAR76 tatol = 13990881.000000
YEAR77 tatol = 15389969.000000
YEAR78 tatol = 16928966.000000
YEAR79 tatol = 18621864.000000
YEAR80 tatol = 20484050.000000YEAR81 tatol = 22532456.000000
YEAR82 tatol = 24785702.000000
YEAR83 tatol = 27264272.000000
YEAR84 tatol = 29990700.000000
YEAR85 tatol = 32989770.000000
YEAR86 tatol = 36288748.000000
YEAR87 tatol = 39917624.000000
YEAR88 tatol = 43909388.000000
YEAR89 tatol = 48300328.000000
YEAR90 tatol = 53130360.000000YEAR91 tatol = 58443396.000000
YEAR92 tatol = 64287736.000000
YEAR93 tatol = 70716512.000000
YEAR94 tatol = 77788168.000000
YEAR95 tatol = 85566984.000000
YEAR96 tatol = 94123688.000000
YEAR97 tatol = 103536056.000000
YEAR98 tatol = 113889664.000000
YEAR99 tatol = 125278632.000000
YEAR100 tatol = 137806496.000000