今天闲来无事,写一个 高精度计算器,嘻嘻ヾ(≧▽≦*)o
新手蒟蒻,望大家多关照呀,[]~( ̄▽ ̄)~*
还想看什么,留言告诉我呀,o(* ̄▽ ̄*)ブ
#include<bits/stdc++.h> //万能头文件
#include <stdlib.h> //如果用system函数,需要用到此头文件
#include<windows.h> //如果用SetConsoleTextAttribute函数和Sleep函数,需要用到此头文件
const long long n=1000000;
int a[n],b[n],c[n];
using namespace std;
string dele(string s1)
{
int i=0;
int len1=s1.size();
while(s1[i]=='0'&&i<len1-1)i++;
return s1.substr(i,len1-i);
}
vector<int> add(vector<int> &a,vector<int> &b)
{
vector<int> c;
int t=0;
for(int i=0;i<a.size()||i<b.size();i++)
{
//不能非法越界
if(i<a.size()) t+=a[i];
if(i<b.size()) t+=b[i];
//每一位的运算结果
c.push_back(t%10);
//进位
t=t/10;
}
if(t==1) c.push_back(1);
return c;
}
int main()
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0B); //SetConsoleTextAttribute函数,用来调整字体颜色
cout<<"高精度计算器"<<endl;
cout<<"按1进入"<<endl;
int a1;
cin>>a1;
if(a1==1)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x03);
cout<<"正在加载中......"<<endl;
Sleep(1000); //Sleep函数用来让程序暂停
cout<<"20%"<<" ";
Sleep(1000);
cout<<"40%"<<" ";
Sleep(1000);
cout<<"60%"<<" ";
Sleep(1000);
cout<<"80%"<<" ";
Sleep(1000);
cout<<"100%"<<endl;
Sleep(1000);
system("cls");
while(1) //无限循环,只靠break退出
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0B);
cout<<" 高精度计算器"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0A);
cout<<"--------------------------------------"<<endl;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0B);
cout<<"按1进入计算"<<endl;
cout<<"按2查看简介"<<endl;
cout<<"按3退出"<<endl;
int b1;
cin>>b1;
if(b1==1)
{
system("cls");
while(1)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x0A);
cout<<"输入样例:"<<endl;
cout<<"10 2222 + 3333 "<<endl;
cout<<"提示:第一个数'10'是进制."<<endl;
string s1,s2,s3,s4;
char ch;
int j;
cin>>j>>s3>>ch>>s4;
system("cls");
int len1,len2,len;
if(ch='+')
{
vector<int> a,b;
string m,n;
cin>>m;
cin>>n;
for(int i=m.size()-1;i>=0;i--) a.push_back(m[i]-'0');
for(int i=n.size()-1;i>=0;i--) b.push_back(n[i]-'0');
auto c= add(a,b);
for(int i=c.size()-1;i>=0;i--)
cout<<c[i];
}
Sleep(5000);
system("cls");
cout<<"按e退出,其他键继续。";
char ch1;
cin>>ch1;
if(ch1=='e')
{
system("cls");
break;
}
}
}
if(b1==2)
{
system("cls");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x06);
cout<<"使用说明:"<<endl;
cout<<"本计算器支持1000000位计算."<<endl;
cout<<"也支持16位及以下进制计算."<<endl;
cout<<"且可计算加,减,乘,除,取模(余数)."<<endl;
Sleep(4000);
system("cls");
}
if(b1==3)
{
break;
}
}
}
return 0;
}
拜拜ヾ(•ω•`)o