本年度自主自述!!!

我入门的时候   才刚到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;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值