水题P1867

cygnus_beta

2021-04-19 19:45:56

Personal

上周教练刚讲完结构体,今天随机跳题第一道就这个,于是就来做了。 这题没什么好讲的,直接上代码: ```cpp #include<iostream>//输入输出 #include<cmath>//pow函数 using namespace std;//命名空间 auto d=new double;//每次扣掉的生命值 auto life=new double(10);//生命值 //不要在意我为什么要用new( struct{ int lv=0;//等级 int exp;//经验 void cal_lv(){ while(this->exp>=(int)pow(2,this->lv)){ this->exp-=(int)pow(2,this->lv); this->lv++; }//有可能一次的经验值可生多次级 }//计算等级函数 }LV;//存储等级和经验值以及一个计算等级的函数 int main(){ cin>>*d;//读入个数(虽然我用while这玩意没用) while(cin>>*d>>LV.exp){ *life-=*d; if(*life<=0)break;//生命小于等于0就死了 if(*life>10)*life=10;//生命值上限为10 LV.cal_lv();//计算等级和经验值 }//循环读入 cout<<LV.lv<<' '<<LV.exp;//输出答案 delete d; delete life;//既然用了new就别忘了delete return 0; } ```