c/c++随机分配器

微信红包???

大家就算再跟不上时代,微信总是用过的吧。那么,我想,红包大家抢过吧??微信红包那神神秘秘的分配机制总是让人倍受惊喜(jīng’xià),令人欢呼(páo’xiào),令人把手机从28楼迫降。那么,微信红包之所谓的随机分配,我们能不能实现呢???

随机分配

至于微信是怎么分的,我反正不大清楚,但是我还是能效仿出一个差不多的,效果看起来相似。唯一有个缺点是不能分配较多份的总额,不然会卡S的。十分简单,只是随机生成一个小于总额的数输出,再在总额里减去相应的数,直到最后一个直接输出。代码如下:

#include 
#include 
#include 
#include 
#include 

using namespace std;

int s=0, v=0;
char ch;
void TalkLD()
{
     
	cout<<".";
	Sleep(300);
	cout<<".";
	Sleep(300);
	cout<<".";
	Sleep(300);
	cout<<endl;
}
void fp()
{
     
	system("cls");
	int x1=v;
	for (int k=1;k<=s;k++)
	{
     
		if (k==s)
		{
     
			cout<<k<<" ";
			cout<<x1<<endl;
			break;
		}
		int i=rand()%x1+1;//至少为1
		cout << k<<" "<< i <<endl;
		x1-=i;
	}
} 
void dr()
{
     
	system ("cls");
	cout<<"分配总额(输完按回车):"; 
	cin>>v;
	cout<<"分配数量(输完按回车):";
	cin>>s;
	system ("cls");
}
int main()
{
     
	system("pause");
	system("cls");
	cout<<"加载中";
	TalkLD();
	Sleep(1000); 
	system("cls");
	cout<<"欢迎使用随机分配器.";
	Sleep(1000);
	system("cls"); 
	system ("title s-键入变量,t键开始分配,e键结束");
	srand(time(NULL));
	while (1)
	{
     
		ch=getch();
		switch (ch){
     
			case 't':
				fp();
				cout<<endl;
				break;
			case 's':
				dr();
				break; 
			case 'e':
				return 0;
				break;
		};
	} 
	return 0;
} 

注意:

要Windows系统才可以。非Windows可以试一下啊哈C编译器,据说是可以滴。
点个赞再走呗~~~

你可能感兴趣的:(c/c++,算法机器,算法,c++,Windows)