#include<bits/stdc++.h>
#define N 10005
#define sqrt_five sqrt(5)
using namespace std;
int gcd(int a,int b) {
while(a%b!=0) {
int r=a%b;
a=b;
b=r;
}
return b;
}
int lcm(int a,int b) {
return a*b/gcd(a,b);
}
void delay(float seconds) { //增加延时时间,功能设计
clock_t start=clock();
clock_t lay=(clock_t)seconds * CLOCKS_PER_SEC;
while((clock()-start)<lay);
}
void vision3() {
cout<<"| | "<<endl;
cout<<" W "<<endl;
}
void vision4() {
cout<<"__ __ "<<endl;
cout<<" W "<<endl;
}
int main() {
while(1) {
system("mode con cols=90 lines=40");
system("color 9f");
vision3();
delay(0.5);
cout<<"您好,我是您的智能电子助理Ribecco"<<endl;
cout<<"请输入您的指令:"<<endl;
cout<<"A.学习 B.玩 C.奇怪の闪光 D.不理你了 E.品读经典" <<endl;
char code;
cin>>code;
if(code=='A') {
cout<<"Ribecco只会数学哦~"<<endl;
cout<<"A.fibonacci通项 B.最大公约数·最小公倍数计算器 C.乘法表 D.矩阵加法 E.一元二次方程 F.计算器 G.基本函数求导" <<endl;
char code_math;
cin>>code_math;
if(code_math=='A') {
int a[100005],c=0;
double n;
cout<<"请输入您要计算的项的项数:"<<endl;
cin>>n;
double p=pow(((1+sqrt_five)/2),n);
double s=pow(((1-sqrt_five)/2),n);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
printf("答案是:%.2lf",(p-s)/sqrt_five);
delay(5);
system("cls");
continue;
vision3();
} else if(code_math=='B') {
int x,y;
cout<<"欢迎使用最大公因数·最小公倍数计算器"<<endl;
cout<<"请输入两个数:"<<endl;
cin>>x>>y;
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"最大公因数是:"<<endl;
cout<<gcd(x,y)<<endl;
cout<<"最小公倍数是:"<<endl;
cout<<lcm(x,y)<<endl;
delay(5);
system("cls");
continue;
vision3();
} else if(code_math=='C') {
int c;
cout<<"您要几乘几的乘法表?"<<endl;
cin>>c;
for(int i=1; i<=c; i++) {
for(int j=1; j<=i; j++) {
cout<<j<<"*"<<i<<"="<<j*i<<" ";
}
delay(1);
cout<<endl;
}
delay(5);
system("cls");
continue;
vision3();
} else if(code_math=='D') {
int a[120][120],b[120][120];
int m,n,i,j;
cout<<"请输入两个矩阵的行和列:"<<endl;
scanf("%d %d",&n,&m);
cout<<"请输入第一个矩阵:"<<endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
scanf("%d",&a[i][j]);
}
}
cout<<"请输入第二个矩阵:"<<endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
scanf("%d",&b[i][j]);
}
}
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
a[i][j]+=b[i][j];
}
}
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"两个矩阵的和是:"<<endl;
for(i=0; i<n; i++) {
for(j=0; j<m; j++) {
printf("%d ",a[i][j]);
}
printf("\n");
}
delay(5);
system("cls");
continue;
vision3();
}
else if(code_math=='E') {
double a1,b1,c1;
double x1,y1;
cout<<"对于ax^2+bx+c=0"<<endl;
cout<<"依降次输入各项系数 a,b,c"<<endl;
cin >> a1>>b1>>c1;
x1 = (-b1+sqrt(b1*b1-4*a1*c1))/(2*a1);
y1 = (-b1-sqrt(b1*b1-4*a1*c1))/(2*a1);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算.."<<endl;
delay(1);
system("cls");
cout<<"Ribecco正在努力计算..."<<endl;
delay(1);
system("cls");
cout <<"x1="<<x1<<endl<<"x2="<<y1<<endl;
}
else if(code_math=='F') {
cout<<"请输入两个数和一个符号:(+表示加,-表示减,*表示乘,/表示整除,%表示取余数)"<<endl;
long long a2,b2;
char c2;
cin>>a2>>b2>>c2;
if(c2=='+') {
cout<<a2+b2<<endl;
delay(5);
system("cls");
continue;
vision3();
} else if(c2=='-') {
cout<<a2-b2<<endl;
delay(5);
system("cls");
continue;
vision3();
} else if(c2=='*') {
cout<<a2*b2<<endl;
delay(5);
system("cls");
continue;
vision3();
} else if(c2=='/') {
cout<<a2/b2<<endl;
delay(5);
system("cls");
continue;
vision3();
} else if(c2=='%') {
cout<<a2%b2<<endl;
delay(5);
system("cls");
continue;
vision3();
}
}
else if(code_math=='G'){
cout<<"基本函数求导"<<endl;
cout<<"请输入你需要求导的函数类型:"<<endl;
cout<<"A.一次函数 B.二次函数 C.反比例函数"<<endl;
char f_x;
cin>>f_x;
if(f_x=='A'){
cout<<"一次函数:y=kx+b"<<endl;
cout<<"请分别输入k和b"<<endl;
int Fx_k,Fx_b;
cin>>Fx_k>>Fx_b;
cout<<"y="<<Fx_k<<"x"<<"+"<<Fx_b<<"的导函数f'(x)="<<Fx_k<<endl;
delay(5);
system("cls");
}
if(f_x=='B'){
cout<<"二次函数:y=ax^2+bx+c"<<endl;
cout<<"请分别输入a,b和c"<<endl;
int Fx_a,Fx_b2,Fx_c;
cin>>Fx_a>>Fx_b2>>Fx_c;
cout<<"y="<<Fx_a<<"x^2"<<"+"<<Fx_b2<<"x"<<"+c"<<"的导函数f'(x)="<<2*Fx_a<<"x"<<"+"<<Fx_b2<<endl;
delay(5);
system("cls");
}
}
else {
delay(5);
system("cls");
continue;
vision3();
}
} else if(code=='B') {
cout<<"您要玩什么?"<<endl;
cout<<"A.猜数 B.字符加密 C.向我开炮 D.make a story"<<endl;
char code_play;
cin>>code_play;
if(code_play=='A') {
srand((unsigned)time(NULL));
int a=rand()%100+1;
int n;
cout<<"正在进入."<<endl;
delay(1);
system("cls");
cout<<"正在进入.."<<endl;
delay(1);
system("cls");
cout<<"正在进入..."<<endl;
delay(1);
system("cls");
while(1) {
cout<<"请输入你猜的数。"<<endl;
cin>>n;
if(n>a) {
cout<<"大了"<<endl;
} else if(n<a) {
cout<<"小了"<<endl;
} else if(n==a) {
cout<<"正确!"<<endl;
delay(5);
system("cls");
continue;
vision3();
}
}
} else if(code_play=='B') {
char a3[200];
cout<<"请输入您要加密的字符串:"<<endl;
cin>>a3;
for(int i=0; i<strlen(a3); i++) {
a3[i]=a3[i]-1;
}
cout<<"正在加密."<<endl;
delay(1);
system("cls");
cout<<"正在加密.."<<endl;
delay(1);
system("cls");
cout<<"正在加密..."<<endl;
delay(1);
system("cls");
cout<<"加密后是:"<<endl;
for(int i=0; i<strlen(a3); i++) {
cout<<a3[i];
}
delay(5);
system("cls");
continue;
vision3();
} else if(code_play=='C') {
int blood=5,sth,sum=0,shanben,pao=100;
system("cls");
srand((unsigned)time(NULL));
shanben=rand()%10;
cout<<"正在进入."<<endl;
delay(1);
system("cls");
cout<<"正在进入.."<<endl;
delay(1);
system("cls");
cout<<"正在进入..."<<endl;
delay(1);
system("cls");
cout<<"正在进入."<<endl;
delay(1);
system("cls");
cout<<"正在进入.."<<endl;
delay(1);
system("cls");
cout<<"正在进入..."<<endl;
delay(1);
system("cls");
cout<<"正在进入."<<endl;
delay(1);
system("cls");
cout<<"正在进入.."<<endl;
delay(1);
system("cls");
cout<<"正在进入..."<<endl;
delay(1);
system("cls");
cout<<"正在进入."<<endl;
delay(1);
system("cls");
cout<<"正在进入.."<<endl;
delay(1);
system("cls");
cout<<"正在进入..."<<endl;
delay(1);
system("cls");
cout<<"--------向我开炮---------"<<endl;
while(1) {
if(blood=0) {
cout<<"任务完成!耗弹:"<<sum<<endl;
delay(5);
system("cls");
break;
vision3();
} else {
cout<<"敌人血量:"<<blood<<" 剩余弹量:"<<pao<<" 开炮次数:"<<sum<<endl;
cout<<"请输入力度:"<<endl;
cin>>sth;
pao--;
sum++;
if(sth==shanben) {
blood--;
cout<<"击中!"<<endl;
} else cout<<"Miss!"<<endl;
}
}
} else if(code_play=='D') {
cout<<"编个故事吧!"<<endl;
int a;
cout<<"故事模拟器"<<endl;
string renwu,didian,adj,thing;
cout<<"请输入人物:"<<endl;
cin>>renwu;
cout<<"请输入地点:"<<endl;
cin>>didian;
cout<<"请输入形容词:"<<endl;
cin>>adj;
cout<<"请输入动作:"<<endl;
cin>>thing;
delay(1);
system("cls");
cout<<"正在编辑."<<endl;
delay(1);
system("cls");
cout<<"正在编辑.."<<endl;
delay(1);
system("cls");
cout<<"正在编辑..."<<endl;
delay(1);
system("cls");
cout<<"你滴故事是:"<<endl;
cout<<renwu<<"在"<<didian<<adj<<"地"<<thing<<"!"<<endl;
delay(5);
system("cls");
continue;
vision3();
} else {
delay(5);
system("cls");
continue;
vision3();
}
} else if(code=='C') {
for(int i=1; i<=100; i++) {
system("mode con cols=2000 lines=233");
system("color 1a");
delay(0.7);
system("color 2b");
delay(0.7);
system("color 3c");
delay(0.7);
system("color 4d");
delay(0.5);
system("color 5e");
delay(0.7);
system("mode con cols=514 lines=114");
}
delay(2);
system("cls");
continue;
vision3();
} else if(code=='D') {
system("cls");
vision4();
return 0;
} else if(code=='E') {
system("cls");
cout<<"正在加载."<<endl;
delay(1);
system("cls");
cout<<"正在加载.."<<endl;
delay(1);
system("cls");
cout<<"正在加载..."<<endl;
delay(1);
system("cls");
cout<<"书目找不到了~"<<endl;
delay(3);
system("cls");
continue;
vision3();
} else {
delay(5);
system("cls");
continue;
vision3();
}
}
return 0;
}