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;
}







