对拍这个神器的玩意儿。。。苟蒻初中的时候就想学不过老是没机会
终于在昨晚(其实是几分钟前)通过百度学会了在Windows下C++对拍!!!
这里以简单的快速幂为例
首先来个暴力幂
#include<cstdio>
#include<iostream>
using namespace std;
long long n,m,k;
int main()
{
cin >> n >> m >> k;
long long sum = 1;
for (int i = 1; i <= k; i++) sum = sum * n % m;
cout << sum;
return 0;
}
#include<cstdio>
#include<iostream>
using namespace std;
typedef long long LL;
LL n,m,k;
LL mi(LL x,LL y)
{
LL ret = 1,now = x;
for (; y; y >>= 1)
{
if (y & 1) ret = ret * now % m;
now = now * now % m;
}
return ret;
}
int main()
{
cin >> n >> m >> k;
cout << mi(n,k);
return 0;
}
随机数生成器。。。
顺便普及下刚学到的知识,Windows下rand()函数的范围是[0,2^16)
所以说有特殊要求得适当调戏下rand()
#include<cstdio>
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
int main()
{
srand(time(0));
long long a,b,c;
a = (rand() << 16) + rand();
b = (rand() << 16) + rand();
c = (rand() << 16) + rand();
printf("%lld %lld %lld\n",a,b,c);
return 0;
}
然后就是超级屌的对拍程序!!!!!!!!
然后就是超级屌的对拍程序!!!!!!!!
然后就是超级屌的对拍程序!!!!!!!!
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<windows.h>
using namespace std;
int main()
{
int t = 10;
while (t--)
{
system("data > mi.in");
system("ksm < mi.in > 1.out");
system("blm < mi.in > 2.out");
if (system("fc 1.out 2.out")) break;
}
system("pause");
return 0;
}
嗯。。最后每个文件都编译下,新建好需要的.in,.out之类,运行duipai.exe就可以查看结果啦!