+ 1
Is this an efficient script? It works, just wondering if this was the best way to do this.
#include <iostream> using namespace std; int main() { int BXP = 1000; int XP; int lvl = 1; int XPN = (BXP+(lvl*100))-100; cin>>XP; while (XP >= XPN){ if (XP >= XPN) { XP -= XPN; lvl += 1; XPN += (lvl*100); } cout<< "lvl: "<< lvl <<endl; cout<< "XP: "<< XP <<endl; cout<< "XP Needed: "<< XPN; } cout<<endl; cout<< "Final Results"<<endl; cout<< "lvl: "<< lvl <<endl; cout<< "XP: "<< XP <<endl; cout<< "XP Needed: "<< XPN <<endl; return 0; } Cld I do better?
7 Answers
+ 13
Replace XPN += (lvl*100);
with XPN += 100;
+ 11
It looks efficient enough but I thought I'd tidy it for ya (I also got rid of "extra" things like BXP):
#include <iostream>
using namespace std;
int main() {
int XP;
int lvl = 1;
int XPN = 1000;
cin>>XP;
while (XP >= XPN){
XP -= XPN;
lvl += 1;
XPN += (lvl*100);
cout << "lvl: " << lvl << endl << "XP: " << XP << endl << "XP Needed: " << XPN << endl;
}
cout << "Final Results" << endl << "lvl: " << lvl << endl << "XP: " << XP << endl << "XP Needed: " << XPN << endl;
return 0;
}
+ 10
Change if (lvl = 50)
to if (lvl == 50)
= assigns the value 50 to lvl.
== checks if lvl is equal to 50 and returns true if it is.
+ 1
Thanks! that looks alot better haha
but I've actually added a few things to the script and have also found out that the increment system has messed up... the XPN is supposed to go up by 100 every level :/ instead it's adding 100 to a pool and increasing the XPN by that.
for example:
lvl 1 XPN = 1200
lvl 2 XPN = 1300
lvl 3 XPN = 1500
lvl 4 XPN = 1800
lvl 5 XPN = 2200
but I need it to be
lvl 1 XPN = 1000
lvl 2 XPN = 1100
lvl 3 XPN = 1200
lvl 4 XPN = 1300
ect...
any ideas?
+ 1
... that was so simple... haha thanks!
+ 1
#include <iostream>
using namespace std;
int main() {
int XP;
int lvl = 1;
int XPN = 1000;
cin>>XP;
while (XP >= XPN && lvl <= 49){
if (XP >= XPN) {
XP -= XPN;
lvl += 1;
XPN += 100;
}
cout<< "Congrats! You Leveled Up!"<<endl<< "lvl: "<< lvl <<endl<< "XP: "<< XP <<endl<<"XP Needed: "<< XPN <<endl;
}
if (lvl = 50) {
cout<<"Congrats! You've reached max level!";
}
if (lvl < 50) {
cout<<endl<<"Final Results"<<endl<< "lvl: "<< lvl <<endl<< "XP: "<< XP <<endl<< "XP Needed: "<< XPN <<endl;
}
return 0;
}
new problem... this script works. however, it always prints "Congrats! You've reached max level" whether the lvl = 50 or not. Could you tell me the error?
+ 1
Oh I see.. so the single equal operation is for assigning to variables and the double operation is for testing conditions. thank you once again haha I apologize if I ask too many questions