|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 静女棋书 于 2013-4-25 17:08 编辑
题目:说现有1000块钱,6块地,白萝卜的种子200块钱一颗,一块地种只能种一颗萝卜,种下去10个小时后成熟,一个白萝卜可以卖480块钱,可以得到40点经验,20000块就可以买一块地,1000点经验就可以升一级,问n天后最多拥有多少块地?最多可以升到多少级?
程序代码:
# include <stdio.h>
#define HOUR 10 //10小时
#define HDJY 40 //卖出萝卜后获得40点经验
#define ZZJG 200 //一颗种子的价格200元
#define MCJG 480 //一个萝卜可以卖480块钱
#define SJJY 1000 //升1级需要1000点经验
#define TDJG 20000 //买1块土地需要20000元
int main (void)
{
int yuan = 1000, td = 6, zz =0, dj = 0, jy = 0;
//td:土地, zz:种子, dj:等级, jy:经验
int day, hour, i, j;
printf("你现在拥有%d元和%d块土地,你要种多少天?\n",yuan, td);
scanf (" %d", &day);
hour = day * 24; //把天数转为小时
while (hour >= 10)
{
while (yuan >= ZZJG && zz < td)
{
zz++;
yuan = yuan - ZZJG;
}
for (i = 1; 1; i++)
{
zz--;
td--;
if (zz == 0)
{
break;
}
}
td = td + i;
hour = hour - HOUR;//10小时后成熟
yuan = yuan + (i * MCJG);//卖出后获得的钱
jy += (i * HDJY); //卖出萝卜后获得的经验值
if (yuan >= TDJG)
{
td += yuan / TDJG; //买后的土地
yuan = yuan - (yuan / TDJG * TDJG); //买地剩下的钱
}
if(jy >= SJJY)
{
j = jy / SJJY;
dj += j; //等级
jy = jy - (j*SJJY); //升级后剩下的经验
}
}
printf("%d天后你最多拥有%d块土地, 有%d级, 还有%d块钱.\n", day, td, dj, yuan );
return 0;
}
|
|