特大整数

原题描述:
特大整数只能存入数组,下面就是我的将特大整数存入字符串数组并且得到两两相加和相减的结果的代码:

#include<stdio.h>
void jinwei(char *a,char *b)
{
 int i=0,j=0,k=0,n,n1=0,n2=0,m,t,d[30],e[30],x,y,z,flag1=0,flag2=0,flag3=0;char c[30];
 while(a[i]!='\0')
 {
  n1++;
  i++;
 }
 i=0;
 while(b[i]!='\0')
 {
  n2++;
  i++; 
 }
 if(n1==n2)
 {
  for(i=n1+1;i>=1;i--)
  {
   a[i]=a[i-1]; 
   b[i]=b[i-1];
  }
  a[0]='0';
  b[0]='0';
 }
 else if(n1>n2)
 {
  t=n1-n2+1;
  for(i=n1+1;i>=1;i--)
  {
   a[i]=a[i-1];
  }
  a[0]='0';
  for(i=n1+1;i>=t;i--)
  {
   b[i]=b[i-t];
  }
  for(i=0;i<t;i++)
  {
   b[i]='0';
  }
 }
 n=n1+1;
 for(i=n-1;i>=0;i--)
 {
  x=(a[i]-'0')+(b[i]-'0');
  y=x%10;
  z=x/10;
  d[j++]=y+flag1;
  if(z>0) flag1=1;
  else flag1=0;
 }
 if(d[j-1]>0) printf("%d",d[j-1]);
 for(i=j-2;i>=0;i--)
 {
  printf("%d",d[i]);
 }
 printf("\n");
 
 
}
void tuiwei(char *a,char *b)
{
 int i=0,j=0,k=0,n,n1=0,n2=0,m,t,d[30],e[30],x,y,z,flag1=0,flag2=0,flag3=0;char c[30];
 while(a[i]!='\0')
 {
  n1++;
  i++;
 }
 i=0;
 while(b[i]!='\0')
 {
  n2++;
  i++; 
 }
 if(n1==n2)
 {
  for(i=n1+1;i>=1;i--)
  {
   a[i]=a[i-1]; 
   b[i]=b[i-1];
  }
  a[0]='0';
  b[0]='0';
 }
 else if(n1>n2)
 {
  t=n1-n2+1;
  for(i=n1+1;i>=1;i--)
  {
   a[i]=a[i-1];
  }
  a[0]='0';
  for(i=n1+1;i>=t;i--)
  {
   b[i]=b[i-t];
  }
  for(i=0;i<t;i++)
  {
   b[i]='0';
  }
 }
 n=n1+1;
 for(i=n-1;i>=0;i--)
 {
  x=(a[i]-'0')-(b[i]-'0');
  if(x<0)
  {
   y=flag2+x+10;
   e[k++]=y;
   flag2=-1;
  }
  else if(x==0)
  {
   if(flag2==-1)
   {
    y=flag2+x+10;
    e[k++]=y;
    flag2=-1;
   }
   else if(flag2==0)
   {
    y=flag2+x;
    e[k++]=y;
    flag2=0;
   }
  }
  else
  {
   y=flag2+x;
   e[k++]=y;
   flag2=0;
  }
 }
 for(i=k-1;i>=0;i--)
 {
  if(e[i]!=0) 
  {
   m=i;
   flag3=1;
   break;
  }
 }
 if(flag3!=1)
 {
  printf("0\n");
 }
 else 
 {
  for(i=m;i>=0;i--)
  {
   printf("%d",e[i]);
  }
  printf("\n");
 }
}
main()
{
 int n,i;char a[40][40],b[40][40];
 scanf("%d",&n);
 for(i=0;i<n;i++)
 {
  scanf("%s",a[i]);
  scanf("%s",b[i]);
 }
 for(i=0;i<n;i++)
 {
  jinwei(a[i],b[i]);
 }
 for(i=0;i<n;i++)
 {
  tuiwei(a[i],b[i]);
 }
}

这部分的理解可能需要大家拿笔在纸上画一画,演算一下会比较好理解,由于我主要是想把自己比赛的好题收集起来,所以具体的算法理解,可能只有靠大家了。

weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值