Discuz! Board

 找回密码
 立即注册
查看: 390|回复: 0

3.27

[复制链接]

54

主题

66

帖子

574

积分

高级会员

Rank: 4

积分
574
发表于 2023-3-27 19:31:03 | 显示全部楼层 |阅读模式
[C] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h>
using namespace std;
int gjdjf(char a,char b)
{
    //char a[100],b[100];
    int a1[100],b1[100],c[100];
    cin>>a>>b;
    int jw=0;
    int al=strlen(a),bl=strlen(b);
    int len=max(strlen(a),strlen(b))
    for(int i=al-1;i>=0;i++)
    {
        a1[i]=a[al-i-1]-'0';
    }
    for(int i=bl-1;i>=0;i++)
    {
        b1[i]=b[bl-i-1]-'0';
    }
    for(int i=0;i<len;i++)
    {
        c[i]=(a1[i]+b1[i]+jw)%10;
        jw=(a1[i]+b1[i]+jw)/10;
    }
    return c;
}
void fbn()
{
	int s;
	cin>>s;
	char a[100];
	a[0]='1';
	a[1]='1';
	for(int i=2;i<s;i++)
	{
		a[i]=gjdjf(a[i-1],a[i-2])+'0';
	}
	printf("%d",a[n-1]);
	return 0;
}/*int a[5]
cin.get(a,5)*/ 

[C] 纯文本查看 复制代码
#include <bits/stdc++.h>
using namespace std;
void g_chen()//10进制高精度乘法 
{
    char a[1000],b[1000];
    int a1[1000]={0},b1[1000]={0},c1[2001]={0};
    cin>>a>>b;  //输入 
    int len_a=strlen(a);//截取长度 
    int len_b=strlen(b);
    int jw=0;//进位 
    for(int i=len_a-1;i>=0;i--)//反向+转换int 
    {
        a1[len_a-1-i]=a[i]-'0';
    }
      
    for(int i=len_b-1;i>=0;i--)
    {
        b1[len_b-1-i]=b[i]-'0';
    }
      
    for(int i=0;i<len_a;i++)//乘法 
    for(int j=0;j<len_b;j++)
    {
        c1[i+j]+=a1[i]*b1[j];
        c1[i+j+1]+=(c1[i+j]/10);
        c1[i+j]=c1[i+j]%10;
    }
      
    int flag=1;
    for(int i=len_a+len_b;i>=0;i--)//反向输出 
    {
        if((flag==1)&&c1[i]==0){}//如果c第1个位0,跳过 
        else
        {cout<<c1[i];
        flag=0;
        }   
    }
    if(flag==1) cout<<0;//如果没输出任何数,输出0 
}
void g_chufa()//10进制高精除法 高精/低精 
{
    char a[2000];
    int a1[2000],c[2000]={0},flag=0;
    int b,x=0;
    cin>>a>>b;//输入 
    for(int i=0;i<strlen(a);i++)//转换int 
    {
        a1[i]=a[i]-'0';
    }
    for(int i=0;i<strlen(a);i++)//x余数 
    {
        c[i]=(a1[i]+10*x)/b;//相除 
        x=a1[i]%b;//取余数 
    }
      
    for(int i=0;i<strlen(a);i++)
    {
        if((flag==0)&&c[i]==0){}//如果第一个数为0,跳过 
        else
        {
            cout<<c[i];//输出 
            flag=1;//标志位设为1 
        }
    }
    if(flag==0) cout<<0;//如果啥也没输出,输出0 
}
int main()
{
	g_chen();
	return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 05:05 , Processed in 0.049446 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表