#include <bits/stdc++.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <Windows.h>
#include <time.h>
using namespace std;
void Slowsay(string a) {int l=a.size();for(int i=0;i<l;i++){cout<<a[i];Sleep(20);}}
int Rand(int l,int r){
int ra=rand();
ra%=(r-l+1);
ra+=l;
Sleep(123);
return ra;
}
vector<int> chuf(int k){
vector<int> z;
for(int i=1;i*i<=k;i++){
if(k%i==0) z.push_back(i);
}
return z;
}
struct node{
int a,b;
char c;
int d;
};
node runn(int t){
node k;
int tmp1,tmp2,tmp3;
if(t==1) tmp1=Rand(1,100);
if(t==2) tmp1=Rand(101,1000);
if(t==3) tmp1=Rand(1001,10000);
tmp2=Rand(1,4);
if(tmp2==1) k.c='+';
if(tmp2==2) k.c='-';
if(tmp2==3) k.c='*';
if(tmp2==4) k.c='/';
if(t==1){
if(k.c=='+') tmp3=Rand(1,100);
if(k.c=='-') tmp3=Rand(1,tmp1);
if(k.c=='*') tmp3=Rand(1,100);
if(k.c=='/'){
vector<int> tmp=chuf(tmp1);
int amp=Rand(0,tmp.size()-1);
tmp3=tmp[amp];
}
}
if(t==2){
if(k.c=='+') tmp3=Rand(101,1000);
if(k.c=='-') tmp3=Rand(101,tmp1);
if(k.c=='*') tmp3=Rand(101,1000);
if(k.c=='/'){
vector<int> tmp=chuf(tmp1);
int amp=Rand(0,tmp.size()-1);
tmp3=tmp[amp];
}
}
if(t==3){
if(k.c=='+') tmp3=Rand(1001,10000);
if(k.c=='-') tmp3=Rand(1001,tmp1);
if(k.c=='*') tmp3=Rand(1001,10000);
if(k.c=='/'){
vector<int> tmp=chuf(tmp1);
int amp=Rand(0,tmp.size()-1);
tmp3=tmp[amp];
}
}
k.a=tmp1,k.b=tmp3;
return k;
}
int t;
signed main(){
srand(time(0));
system("color c");
Slowsay("欢迎来到计算世界;\n");
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n";
cout<<"■(1) 四则低级计算(1~100) ■\n";
cout<<"■(2) 四则中级计算(101~1000) ■\n";
cout<<"■(3) 四则高级计算(1001~10000) ■\n";
cout<<"■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n";
int t;
Sleep(2000);
system("cls");
while(MessageBox(NULL,"挑战","挑战",MB_YESNO)==IDYES) {
system("cls");
Slowsay("请输入:");
cin>>t;
Slowsay("请等待...");
Slowsay("生成随机数!(2.1秒后生成!)");
Slowsay("........\n");
//Slowsay("请在三十秒内作答完毕!") ;
system("cls");
vector<node> a;
for(int i=1;i<=10;i++){
a.push_back(runn(t));
}
for(auto &it:a){
cout<<it.a<<it.c<<it.b<<"="<<endl;
if(it.c=='+') it.d=it.a+it.b;
if(it.c=='-') it.d=it.a-it.b;
if(it.c=='*') it.d=it.a*it.b;
if(it.c=='/') it.d=it.a/it.b;
}
int tmp[11];
auto start = std::chrono::high_resolution_clock::now();
for(int i=1;i<=10;i++){
cin>>tmp[i];
}
auto end = std::chrono::high_resolution_clock::now();
auto duration =std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
auto tmpt=duration;
/*if(tmpt>=30000){
Slowsay("您已超时!此次输入做废!");
continue;
}
*/
system("cls");
int cnt=0;
Slowsay("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n");
Slowsay("■ 成绩单 ■\n");
for(int i=1;i<=10;i++){
if(tmp[i]==a[i-1].d){
cnt++;
Slowsay("■ ");
if(i!=10)Slowsay(" ");
cout<<i<<"、";
Slowsay("正确 ■\n");
}else{
Slowsay("■ ");
if(i!=10)Slowsay(" ");
cout<<i<<"、";
Slowsay("错误 ■\n");
}
}
Slowsay("■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n");
Slowsay("您在本次挑战答对了");
cout<<cnt<<"题\n";
if(cnt==10){
Slowsay("您荣获计算大师称号!\n");
Slowsay(" 恭喜 \n");
}
}
return 0;
}