c++研发笔试题目!求好的解法
在游戏中,角色有5个属性分别是A、B、C、D、E 使这5个属性随机的变化,并且每个属性值保持在10~35之间,总和为100不变!要求效率尽可能的高!给出算法来!有没有哪位仁兄知道好的方法的?
“角色有5个属性分别是A、B、C、D、E 使这5个属性随机的变化,并且每个属性值保持在10~35之间,总和为100不变!”
简化为
“角色有5个属性分别是A、B、C、D、E 使这5个属性随机的变化,并且每个属性值保持在0~25之间,总和为50不变!”,然后各属性再加10
你先想想为什么要这么做,这才是关键
程序代码:
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand( (unsigned)time(NULL) ); int sum = 50; for( int i=0; i<4; ++i ) { int v = ( sum!=0 ? rand()%min(26,sum) : 0 ) + 10; sum -= v-10; cout << char('A'+i) << " = " << v << endl; } int E = sum + 10; cout << "E = " << E << endl; return 0; }