复试上机题-数学问题

源于《2013年王道论坛计算机考研机试指南》与牛客网计算机考研复试上机题

1.%运算符

KY133 还是A+B

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int pos[10]={1,10,100,1000,10000,100000,1000000,10000000,100000000};
int main(){
    int a,b,k;
    while(scanf("%d %d %d",&a,&b,&k)!=EOF){
        if(a==0&&b==0)break;
        if(a%pos[k]==b%pos[k])printf("-1\n");
        else printf("%d\n",a+b);
    }
    return 0;
}

KY217 守形数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;

int main(){
    int n,pos;
    while(scanf("%d",&n)!=EOF){
        if(n>10)pos=100;
        else pos=10;
        if((n*n)%pos==n){
            printf("Yes!\n");
        }else{
            printf("No!\n");
        }
    }
}

2.数位拆解

KY18 特殊乘法

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int cura[20],curb[20];
int main(){
    int a,b,lena=0,lenb=0;
    while(scanf("%d %d",&a,&b)!=EOF){
        while(a){
            cura[lena++]=a%10;
            a/=10;
        }
        while(b){
            curb[lenb++]=b%10;
            b/=10;
        }
        int sum=0;
        for(int i=0;i<lena;i++){
            for(int j=0;j<lenb;j++){
                sum+=cura[i]*curb[j];
            }
        }
        printf("%d\n",sum);
    }
}

KY266 反序数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
    for(int i=1000;i<=(10000/9);i++){
        int tmp=i,pos=0,num=0;
        while(tmp){
            num=num*10+tmp%10;
            tmp/=10;
        }
        if(num==9*i)printf("%d\n",i);
    }
    return 0;
}

KY275 对称平方数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int pos[20];
int main(){
    for(int i=1;i<256;i++){
        int sq=i*i,cur=0;
        while(sq){
            pos[cur++]=sq%10;
            sq/=10;
        }
        int mid=cur/2,flag=1;
        for(int i=0;i<mid;i++){
            if(pos[i]!=pos[cur-i-1]){
                flag=0;
                break;
            }
        }
        if(flag)printf("%d\n",i);
    }
    return 0;
}

KY72 Digital Roots

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int convert(int a){
    int sum=0;
    while(a){
        sum+=a%10;
        a/=10;
    }
    return sum;
}
int main(){
    int num;
    while(scanf("%d",&num)!=EOF){
        if(num==0)break;
        while(num/10){
            num=convert(num);
        }
        printf("%d\n",num);
    }
    return 0;
}

3.进制转换

★KY135 又一版 A+B

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
void convert(long long int num,long long int order){
    int pos[30],cur=0;
    while(num){
        pos[cur++]=num%order;
        num/=order;
    }
    if(cur==0)printf("0\n");
    else{
        for(int i=cur-1;i>=0;i--){
            printf("%d",pos[i]);
        }
        printf("\n");
    }
}
int main(){
    long long int order,a,b;
    while(scanf("%ld",&order)!=EOF){
        if(order==0)break;
        scanf("%ld %ld",&a,&b);
        convert(a+b,order);
    }
    return 0;
}

KY56 数制转换

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int convert(char s){
    if(s>='0'&&s<='9')return s-'0';
    if(s=='a'||s=='A')return 10;
    if(s=='b'||s=='B')return 11;
    if(s=='c'||s=='C')return 12;
    if(s=='d'||s=='D')return 13;
    if(s=='e'||s=='E')return 14;
    if(s=='f'||s=='F')return 15;
}
void convert2(int num,long long int order){
    int pos[30],cur=0;
    while(num){
        pos[cur++]=num%order;
        num/=order;
    }
    if(cur==0)printf("0\n");
    else{
        for(int i=cur-1;i>=0;i--){
            if(pos[i]>=0&&pos[i]<=9)printf("%d",pos[i]);
            if(pos[i]==10)printf("A");
            if(pos[i]==11)printf("B");
            if(pos[i]==12)printf("C");
            if(pos[i]==13)printf("D");
            if(pos[i]==14)printf("E");
            if(pos[i]==15)printf("F");
        }
        printf("\n");
    }
}
char str[30];
int main(){
    int a,b,num=0;
    scanf("%d %s %d",&a,&str,&b);
    for(int i=0;str[i]!=NULL;i++){
        num=num*a+convert(str[i]);
    }
    convert2(num,b);
    return 0;
}

better:

#include<iostream>
#include<algorithm>
using namespace std;
int convert(char s){
    if(s>='0'&&s<='9')return s-'0';
    else if(s>='a'&&s<='z')return s-'a'+10;
    else if(s>='A'&&s<='Z')return s-'A'+10;
}
void convert2(int num,long long int order){
    int pos[30],cur=0;
    while(num){
        pos[cur++]=num%order;
        num/=order;
    }
    if(cur==0)printf("0\n");
    else{
        for(int i=cur-1;i>=0;i--){
            if(pos[i]>=0&&pos[i]<=9)printf("%d",pos[i]);
            else printf("%c",'A'+pos[i]-10);
        }
        printf("\n");
    }
}
char str[30];
int main(){
    int a,b,num=0;
    scanf("%d %s %d",&a,&str,&b);
    for(int i=0;str[i]!=NULL;i++){
        num=num*a+convert(str[i]);
    }
    convert2(num,b);
    return 0;
}

KY235 进制转换2

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int convert(char s){
    if(s>='0'&&s<='9')return s-'0';
    else if(s>='a'&&s<='z')return s-'a'+10;
    else if(s>='A'&&s<='Z')return s-'A'+10;
}
void convert2(long long int num,int order){
    int pos[30],cur=0;
    while(num){
        pos[cur++]=num%order;
        num/=order;
    }
    if(cur==0)printf("0\n");
    else{
        for(int i=cur-1;i>=0;i--){
            if(pos[i]>=0&&pos[i]<=9)printf("%d",pos[i]);
            else printf("%c",'A'+pos[i]-10);
        }
        printf("\n");
    }
}
char x[30];
int main(){
    int m,n;
    long long int num=0;
    scanf("%d %d",&m,&n);
    scanf("%s",&x);
    for(int i=0;x[i]!=NULL;i++){
        num=num*m+convert(x[i]);
    }
    convert2(num,n);
    return 0;
}

KY230 八进制

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
void convert(int n){
    int pos[20],cur=0;
    while(n){
        pos[cur++]=n%8;
        n/=8;
    }
    if(cur){
        for(int i=cur-1;i>=0;i--){
            printf("%d",pos[i]);
        }
        printf("\n");
    }else{
        printf("0\n");
    }
}
int main(){
    int n;
    while(scanf("%d",&n)!=EOF){
        convert(n);
    }
}

4.最大公约数

KY161 最大公约数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a,int b){
    if(a==0)return b;
    if(b==0)return a;
    return gcd(b,a%b);
}
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d\n",gcd(a,b));
    return 0;
}

KY239 最大公约数1

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a,int b){
    if(a==0)return b;
    if(b==0)return a;
    return gcd(b,a%b);
}
int main(){
    int n,min,max,cur;
    while(scanf("%d",&n)!=EOF){
        int pos[n];
        min=0x3fffffff,max=-1;
        for(int i=0;i<n;i++){
            scanf("%d",&pos[i]);
            if(pos[i]>max)max=pos[i];
            if(pos[i]<min)min=pos[i];
        }
        printf("%d %d %d\n",min,max,gcd(min,max));
    }
    return 0;
}

5.最小公倍数

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int gcd(int a,int b){
    return b!=0?gcd(b,a%b):a;
}
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d\n",a*b/gcd(a,b));
    return 0;
}

6.素数筛法

KY163 素数判定

在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
bool isSingle(int num){
    bool flag=true;
    if(num<=1)return false;
    for(int i=2;i<=sqrt(num);i++){
        if(num%i==0){
            flag=false;
            break;
        }
    }
    return flag;
}
int main(){
    int n;
    scanf("%d",&n);
    if(isSingle(n))printf("yes\n");
    else printf("no\n");
    return 0;
}

KY183 素数

在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int pos[10010],res[1010];
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        for(int j=2;j<=sqrt(i);j++){
            if(i%j==0){
                pos[i]=1;
                int tmp=n;
                for(int k=2;k*i<n;k++){
                    pos[k*i]=1;
                }
                break;
            }
        }
    }
}
int main(){
    int n,cur=0;
    scanf("%d",&n);
    convert(n);
    for(int i=2;i<n;i++){
        if(pos[i]==0&&i%10==1)res[cur++]=i;
    }
    for(int i=0;i<cur-1;i++){
        printf("%d ",res[i]);
    }
    printf("%d",res[cur-1]);
    return 0;
}

better:

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int pos[10010],res[1010];
void convert(int n){
	int size=0;
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=1;
        }
    }
}
int main(){
    int n,cur=0;
    scanf("%d",&n);
    convert(n);
    for(int i=2;i<n;i++){
        if(pos[i]==0&&i%10==1)res[cur++]=i;
    }
    if(cur==0)printf("-1\n");
    else{
	    for(int i=0;i<cur-1;i++){
	        printf("%d ",res[i]);
	    }
	    printf("%d\n",res[cur-1]);
    }
    return 0;
}

KY110 Prime Number

在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int pos[110000],res[10010];
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=1;
        }
    }
}
int main(){
    int n,cur=0;
    convert(110000);
    for(int i=2;i<110000;i++){
        if(pos[i]==0)res[cur++]=i;
    }
    while(scanf("%d",&n)!=EOF){
        printf("%d\n",res[n-1]);
    }
    return 0;
}

7.分解素因数

★KY7 质因数的个数

在这里插入图片描述
1.先用素数筛子求出sqrt(1e9)+1内的所有的素数(取根号是因为一个数n所有质因数中只有一个大于sqrt平方的)。
2.依次对给定的数n除以他的质因数,如果除到了1,说明除尽了,如果没除到1,就将素数筛子里的数向后移一位判断。
3.如果最后都判断完了,n仍!=1,说明存在一个大于他的根号的因数,那么加一即可。

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
bool pos[100001];
int res[100001],cur=0;
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        res[cur++]=i;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=true;
        }
    }
}
int main(){
    int n,count=0;
    convert(100001);
    while(scanf("%d",&n)!=EOF){
        while(n!=1){
            int tmp=n;
            for(int i=0;res[i]<=n&&i<cur;i++){
                if(n%res[i]==0){
                    count++;
                    n/=res[i];
                    break;
                }
            }
            if(tmp==n){
                count++;
                break;
            }
        }
        printf("%d\n",count);
    }
    return 0;
}

在这里插入图片描述
better:

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
bool pos[100001];
int res[100001],cur=0;
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        res[cur++]=i;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=true;
        }
    }
}
int main(){
    int n;
    convert(100001);
    while(scanf("%d",&n)!=EOF){
        int ansNum[100],ansPrime[100],sum=0,count=0;
        for(int i=0;i<cur;i++){
            if(n%res[i]==0){
                ansPrime[count]=res[i];
                ansNum[count]=0;
                while(n%res[i]==0){
                    ansNum[count]++;
                    n/=res[i];
                    count++;
                }
            }
            if(n==1)break;
        }
        if(n!=1){
            ansPrime[count]=n;
            ansNum[count++]=1;
        }
        for(int i=0;i<count;i++){
            sum+=ansNum[i];
        }
        printf("%d\n",sum);
    }
    return 0;
}

★★KY105 整除问题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int pos[100001],res[100001],cur=0;
int numN[100001],numA[100001],countN=0;
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        res[cur++]=i;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=true;
        }
    }
}
void cal(int times[],int num){
    for(int i=0;i<cur;i++){
        if(num%res[i]==0){
            if(times[i]==NULL){
                times[i]=0;
                countN++;
            }
            while(num%res[i]==0){
                times[i]++;
                num/=res[i];
            }
        }
        if(num==1)break;
    }
}
int main(){
    convert(100001);
    int n,a,min=0x3fffffff;
    scanf("%d %d",&n,&a);
    for(int i=2;i<=n;i++){
         cal(numN,i);
    }
    cal(numA,a);
    for(int i=0;i<countN;i++){
        if(numA[i]==0)continue;
        if(numN[i]/numA[i]<min)min=numN[i]/numA[i];
    }
    printf("%d\n",min);
    return 0;
}

better:

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int pos[1010],res[1010],cur=0;
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        res[cur++]=i;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=true;
        }
    }
}
int cnt1[1010],cnt2[1010];
int main(){
    convert(1010);
    int n,a,min=0x3fffffff;
    scanf("%d %d",&n,&a);
    for(int i=0;i<cur;i++){
        cnt1[i]=0;
        cnt2[i]=0;
    }
    for(int i=0;i<cur;i++){
        int t=n;
        while(t){
            cnt1[i]+=t/res[i];
            t/=res[i];
        }
    }
    for(int i=0;i<cur;i++){
        while(a%res[i]==0){
            cnt2[i]++;
            a/=res[i];
        }
        if(cnt2[i]==0)continue;
        if(cnt1[i]/cnt2[i]<min)min=cnt1[i]/cnt2[i];
    }
    printf("%d\n",min);
    return 0;
}

KY3 约数的个数

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
bool pos[100001];
int res[100001],cur=0,str[100001];
void convert(int n){
    for(int i=2;i<n;i++){
        if(pos[i])continue;
        res[cur++]=i;
        for(int j=2*i;j<=n;j+=i){
            pos[j]=true;
        }
    }
}
int main(){
    int n,num;
    convert(100001);
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&num);
        int cnt=0,sum=1;
        for(int i=0;i<cur;i++){
            if(num%res[i]==0){
                str[cnt]=0;
                while(num%res[i]==0){
                    str[cnt]++;
                    num/=res[i];
                }
                cnt++;
            }
            if(num==1)break;
        }
        if(num!=1)str[cnt++]=1;
        for(int i=0;i<cnt;i++){
            sum*=str[i]+1;
        }
        if(num==0)printf("1\n");
        else printf("%d\n",sum);
    }
    return 0;
}

8.★二分求幂

在这里插入图片描述
if(b%2==1){
sum*=cur;
sum%=1000;
}

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int main(){
    int a,b;
    while(scanf("%d %d",&a,&b)!=EOF){
        if(a==0&&b==0)break;
        int sum=1,cur=a%1000;
        while(b){
            if(b%2==1){
                sum*=cur;
                sum%=1000;
            }
            b/=2;
            cur=(cur*cur)%1000;
        }
        printf("%d\n",sum%1000);
    }
    return 0;
}

在这里插入图片描述

9.高精度整数

在这里插入图片描述

★★KY209 a+b

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
struct bigInteger{
    int size;
    int digit[1000];
    void init(){
        for(int i=0;i<1000;i++)digit[i]=0;
        size=0;
    }
    void convert(char str[]){
        int len=strlen(str),i;
        for(i=len-4;i>=0;i-=4,len=i+4){
            int circle=4,num=0;
            while(circle--){
                num=num*10+str[i+3-circle]-'0';
            }
            digit[size++]=num;
        }
        if(len<4&&len>0){
            int tmp=len;
            while(tmp--){
                digit[size]=digit[size]*10+str[len-tmp-1]-'0';
            }
            size++;
        }
    }
}numA,numB;
char a[1001],b[1001];

int main(){
    while(scanf("%s %s",&a,&b)!=EOF){
        numA.init();
        numB.init();
        numA.convert(a);
        numB.convert(b);
        int flag=0,i;
        int max=numA.size<numB.size?numB.size:numA.size;
        for(i=0;i<max;i++){
            numB.digit[i]+=numA.digit[i]+flag;
            if(numB.digit[i]/10000){
                numB.digit[i]%=10000;
                flag=1;
            }else{
                flag=0;
            }
        }
        if(flag){
            numB.digit[i]+=1;
            max++;
        }
        for(int i=max-1;i>=0;i--){
            if(i==max-1)printf("%d",numB.digit[i]);
            else printf("%04d",numB.digit[i]);
        }
        printf("\n");
    }
    return 0;
}

★KY24 N的阶乘

在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
struct bigInteger{
    int size;
    int digit[1000];
    void init(){
        for(int i=0;i<1000;i++)digit[i]=0;
        size=0;
    }
    void convert(int str){
        while(str){
            digit[size++]=str%10000;
            str/=10000;
        }
    }
    void print(){
        for(int i=size-1;i>=0;i--){
            if(i==size-1)printf("%d",digit[i]);
            else printf("%04d",digit[i]);
        }
    }
    bigInteger operator *(int x)const{
        bigInteger tmp;
        int flag=0,i;
        tmp.init();
        for(i=0;i<size;i++){
            tmp.digit[tmp.size++]=digit[i]*x+flag;
            if(tmp.digit[i]/10000){
                flag=tmp.digit[i]/10000;
                tmp.digit[i]=tmp.digit[i]%10000;
            }else{
                flag=0;
            }
        }
        if(flag){
            tmp.digit[i]+=flag;
            tmp.size++;
        }
        return tmp;
    }
}numA;
int main(){
    int a;
    while(scanf("%d",&a)!=EOF){
        numA.init();
        numA.convert(1);
        for(int i=2;i<=a;i++){
            numA=numA*i;
        }
        numA.print();
        printf("\n");
    }
    return 0;
}

KY235 进制转换2

在这里插入图片描述

#include<iostream>
#include<algorithm>
using namespace std;
int convert(char s){
    if(s>='0'&&s<='9')return s-'0';
    else if(s>='a'&&s<='z')return s-'a'+10;
    else if(s>='A'&&s<='Z')return s-'A'+10;
}
void convert2(long long int num,int order){
    int pos[30],cur=0;
    while(num){
        pos[cur++]=num%order;
        num/=order;
    }
    if(cur==0)printf("0\n");
    else{
        for(int i=cur-1;i>=0;i--){
            if(pos[i]>=0&&pos[i]<=9)printf("%d",pos[i]);
            else printf("%c",'A'+pos[i]-10);
        }
        printf("\n");
    }
}
char x[30];
int main(){
    int m,n;
    long long int num=0;
    scanf("%d %d",&m,&n);
    scanf("%s",&x);
    for(int i=0;x[i]!=NULL;i++){
        num=num*m+convert(x[i]);
    }
    convert2(num,n);
    return 0;
}

高精度待补充

★★KY79 浮点数加法

在这里插入图片描述

#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
struct bigInteger{
    int sizeI,sizeD;
    int digit[1000];
    int integer[1000];
    void init(){
        for(int i=0;i<1000;i++){
            digit[i]=0;
            integer[i]=0;
        }
        sizeI=sizeD=0;
    }
    void convert(char str[]){
        int pos=0;
        while(str[pos]!='.')pos++;
        char str1[1000],str2[1000];
        for(int i=0;i<1000;i++){
            str1[i]=0;
            str2[i]=0;
        }
        for(int i=0;i<pos;i++){
            str1[i]=str[i];
        }
        for(int i=pos+1;i<strlen(str);i++){
            str2[i-pos-1]=str[i];
        }
        int len=strlen(str1),i;
        for(i=len-4;i>=0;i-=4,len=i+4){
            int circle=4,num=0;
            while(circle--){
                num=num*10+str1[i+3-circle]-'0';
            }
            integer[sizeI++]=num;
        }
        if(len<4&&len>0){
            int tmp=len;
            while(tmp--){
                integer[sizeI]=integer[sizeI]*10+str1[len-tmp-1]-'0';
            }
            sizeI++;
        }
        len=strlen(str2);
        for(i=0;i<len;i+=4){
            int circle=4,num=0;
            while(circle--){
                if(str2[i+3-circle]==NULL)str2[i+3-circle]='0';
                num=num*10+str2[i+3-circle]-'0';
            }
            digit[sizeD++]=num;
        }
    }
    void print(){
        for(int i=sizeI-1;i>=0;i--){
            if(i==sizeI-1)printf("%d",integer[i]);
            else printf("%04d",integer[i]);
        }
        printf(".");
        if(sizeD>=1){
            while(digit[sizeD-1]==0){
                sizeD--;
            }
        }
        for(int i=0;i<sizeD;i++){
            if(i==sizeD-1){
                char last[4];
                int lstcnt=0;
                for(int i=0;i<4;i++){
                    last[i]=digit[sizeD-1]%10+'0';
                    digit[sizeD-1]/=10;
                }
                for(int i=0;i<4;i++){
                    if(last[i]=='0')lstcnt++;
                    else break;
                }
                for(int i=3;i>=lstcnt;i--){
                    printf("%c",last[i]);
                }
            }
            else printf("%04d",digit[i]);
        }
        printf("\n");
    }
    bigInteger operator +(bigInteger x)const{
        bigInteger tmp;
        int flag=0,i;
        tmp.init();
        tmp.sizeD=sizeD>x.sizeD?sizeD:x.sizeD;
        tmp.sizeI=sizeI>x.sizeI?sizeI:x.sizeI;
        for(i=tmp.sizeD-1;i>=0;i--){
            tmp.digit[i]=digit[i]+x.digit[i]+flag;
            if(tmp.digit[i]/10000){
                flag=tmp.digit[i]/10000;
                tmp.digit[i]%=10000;
            }else{
                flag=0;
            }
        }

        for(i=0;i<tmp.sizeI;i++){
            tmp.integer[i]=integer[i]+x.integer[i]+flag;
            if(tmp.integer[i]%10000){
                flag=tmp.integer[i]/10000;
                tmp.integer[i]%=10000;
            }else{
                flag=0;
            }
        }
        if(flag)tmp.integer[tmp.sizeI++]+=flag;
        return tmp;
    }
}numA,numB;
char a[1000],b[1000];
int main(){
    scanf("%s",&a);
    numA.convert(a);
    scanf("%s",&b);
    numB.convert(b);
    
    numB=numA+numB;
    numB.print();
    return 0;
}

KY26 10进制 VS 2进制

KY224 大整数排序

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值