c-c++随机分配器
c-c++随机分配器
微信红包???
大家就算再跟不上时代,微信总是用过的吧。那么,我想,红包大家抢过吧??微信红包那神神秘秘的分配机制总是让人倍受惊喜(jīng’xià),令人欢呼(páo’xiào),令人把手机从28楼迫降。那么,微信红包之所谓的随机分配,我们能不能实现呢???
随机分配
至于微信是怎么分的,我反正不大清楚,但是我还是能效仿出一个差不多的,效果看起来相似。唯一有个缺点是不能分配较多份的总额,不然会卡S的。十分简单,只是随机生成一个小于总额的数输出,再在总额里减去相应的数,直到最后一个直接输出。代码如下:
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <cstdlib>
#include <ctime>
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编译器,据说是可以滴。
点个赞再走呗~~~
转载于网络 侵权联系作者立即删除QAQ