我入门的时候 才刚到12岁,小学;
经验不足,处处碰壁,排名跟不上去,没有一个粉丝;
可是,还是有一些人为我加油。谢谢!
我写这篇文章的时候,是2022/5/25,是我最
开心的一天
我知道你们不想看,可能没有人会开心,
这篇文章,我能不能看到都是天注定的,如果你看到了
请给我点个赞,好吗?
我不知道 以后我是否会走出社区
因为可能学业繁忙
可能喜欢我的人,会“叛逃”。
我知道在座的各位,都是些成年人了,
而我却是..............
不管怎么样,我终究是不会忘记“我们的”!
以下是我独立编写的(人性化)高精度C3程序,
如有雷同,纯属巧合:如有问题,请私信-------
//高精度除法
#include<bits/stdc++.h>
#include<windows.h>
#include<Windows.h>
using namespace std;
const long long N = 200;
int a[N],b[N],c[N],d,i;
void slowout(char *p){
while(1){
if(*p!=0)printf("%c",*p++);
else break;
Sleep(100);
}
}void init(int a[]){
char s[N];scanf("%s",s);
int len=strlen(s);a[0]=len;
for(int i=1;i<=a[0];++i)a[i]=s[a[0]-i]-'0';
}void print(int a[]){
if(a[0]==0) {
printf("0\n");
return ;
}for(int i=a[0];i>0;--i)
printf("%d",a[i]);
puts("");
}int compare(int a[],int b[]){
if(a[0]>b[0]) return 1;
if(a[0]<b[0]) return -1;
for(int i=a[0];i>0;--i){
if(a[i]>b[i])return 1;
if(a[i]<b[i])return -1;
}return 0;
}void jian(int a[],int b[]){
int flag=compare(a,b);
if(flag==0) {
a[0]=0;
return ;
}if(flag==1){
for(int i=1;i<=a[0];++i){
if(a[i]<b[i]){
a[i+1]--;
a[i]+=10;
}a[i]-=b[i];
}while(a[0]>0&&a[a[0]]==0)a[0]--;
return ;
}
}void numcpy(int p[],int q[],int det){
for(int i=1;i<=p[0];++i)
q[i+det-1]=p[i];
q[0]=p[0]+det-1;
}void div(int a[],int b[],int c[]){
int tmp[N];
c[0]=a[0]-b[0]+1;
for(int i=c[0];i>0;--i){
memset(tmp,0,sizeof(tmp));
numcpy(b,tmp,i);
while(compare(a,tmp)>=0) {
c[i]++;
jian(a,tmp);
}
}while(c[0]>0&&c[c[0]]==0) c[0]--;
}int main(){
slowout("--Divided number:");init(a);
slowout("--Divisor:");init(b);
slowout("It is being calculated.");
cout<<endl;div(a,b,c);Sleep(600);
slowout("The result is:");
cout<<endl;Sleep(1000);
slowout("--Business:");
Sleep(500);print(c);Sleep(700);
slowout("--remainder:");
Sleep(500);print(a);Sleep(700);
slowout("The formula is over");
}
//高精度乘法
#include<bits/stdc++.h>
#include<windows.h>
#include<Windows.h>
using namespace std;
char a1[100],b1[100];
int a[100],b[100],c[100];
int lena,lenb,lenc,i,j,x;
void slowout(char *p){
while(1){
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
}int main(){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
slowout("Multiplier1:");
Sleep(500);gets(a1);
slowout("Multiplier2:");
Sleep(500);gets(b1);
lena=strlen(a1);lenb=strlen(b1);
for (i=0;i<=lena-1;i++) a[lena-i]=a1[i]-48;
for (i=0;i<=lenb-1;i++) b[lenb-i]=b1[i]-48;
for (i=1;i<=lena;i++){
long long x=0;
for (j=1;j<=lenb;j++){
c[i+j-1]=a[i]*b[j]+x+c[i+j-1];
x=c[i+j-1]/10;
c[i+j-1] %= 10;
}c[i+lenb]=x;
}lenc=lena+lenb;
while (c[lenc]==0&&lenc>1)lenc--;
slowout("--remainder:");Sleep(400);cout<<endl;
slowout("Accumulate:");Sleep(400);
for (i=lenc;i>=1;i--) cout<<c[i];
cout<<endl;Sleep(300);
slowout("The formula is over");
return 0;
}
//高精度加法
#include<bits/stdc++.h>
#include<windows.h>
#include<Windows.h>
using namespace std;
int a[1001],b[1001],c[1002]={};
int al,bl,len;
string s1,s2;
void slowout(char *p){
while(1){
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
}int main(){
slowout("Addend1:");
Sleep(500);cin>>s1;
slowout("Addend2:");
Sleep(500);cin>>s2;
al=s1.length();
bl=s2.length();
len=al;
for(int i=0;i<al;i++){
a[i]=s1[al-i-1]-'0';
}for(int i=0;i<bl;i++){
b[i]=s2[bl-i-1]-'0';
}if(bl>len)len=bl;
for (int i = 0; i < len; i++) {
c[i] += a[i] + b[i];
c[i + 1] = c[i] / 10;
c[i] %= 10;
}if (c[len])
len++;
slowout("The result is:");Sleep(300);cout<<endl;
slowout("Sum total:");Sleep(300);
for(int i=len-1;i>=0;i--)cout<<c[i];
cout<<endl;Sleep(400);
slowout("The formula is over");
return 0;
}
//高精度减法
#include<bits/stdc++.h>
#include<windows.h>
#include<Windows.h>
using namespace std;
int a[1001],b[1001],c[1002]={};
int al,bl,len;
string s1,s2;
void slowout(char *p){
while(1){
if(*p!=0)
printf("%c",*p++);
else
break;
Sleep(100);
}
}int main(){
slowout("Subtrahend1:");
Sleep(500);cin>>s1;
slowout("Subtrahend2:");
Sleep(500);cin>>s2;
al=s1.length();
bl=s2.length();
len=al;
for(int i=0;i<al;i++){
a[i]=s1[al-i-1]-'0';
}for(int i=0;i<bl;i++){
b[i]=s2[bl-i-1]-'0';
}
if(bl>len)len=bl;
for (int i = 0; i < len; i++) {
c[i] += a[i] - b[i];
if(c[i]<0){
c[i+1]--;
c[i]+=10;
}
}while(len>1&&c[len-1]==0) len--;
slowout("The result is:"); Sleep(300);cout<<endl;
slowout("Difference:"); Sleep(300);
for(int i=len-1;i>=0;i--) cout<<c[i];
cout<<endl;Sleep(400);
slowout("The formula is over");
return 0;
}