• joj 1189


     大数,题目有点误解人。。。明明说VeryLongInteger但运算的却不是数字而是文本行

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    char str1[1000005],str2[105];
    int main()
    {
        scanf("%s",str1);
        while(scanf("%s",str2),strcmp(str2,"0")!=0)
        {
             int len1,len2,i=0;
             while(str1[i]!='\0')
                 i++;
             len1=i;
             i=0;
             while(str2[i]!='\0')
                 i++;
             len2=i;
             if(len1==len2)
             {
                 int i=len1-1;
                 int c=0;
                 while(i>=0)
                 {
                    
                     int m=c+str2[i]-'0'+str1[i]-'0';
                     str2[i]=m%10+'0';
                     c=m/10;
                     i--;
                 }
                 if(c>0)
                 {
                    str1[0]=c+'0';
                    strcpy(str1+1,str2);
                 }
                 else
                    strcpy(str1,str2);
             }
             else if(len1<len2)
             {
                 int i=len1-1;
                 int c=0;
                 int q=len2-len1;
                 while(i>=0)
                 {
                    
                     int m=c+str2[i+q]-'0'+str1[i]-'0';
                     str2[i+q]=m%10+'0';
                     c=m/10;
                     i--;
                 }
                 q--;
                 while(c&&q>=0)
                 {
                     int m=c+str2[q]-'0';
                     str2[q]=m%10+'0';
                     c=m/10;
                     q--;
                 }
                 if(c>0)
                 {
                    str1[0]=c+'0';
                    strcpy(str1+1,str2);
                 }
                 else
                    strcpy(str1,str2);
             }
             else if(len1>len2)
             {
                 int i=len2-1;
                 int c=0;
                 int q=len1-len2;
                 while(i>=0)
                 {
                    
                     int m=c+str1[i+q]-'0'+str2[i]-'0';
                     str1[i+q]=m%10+'0';
                     c=m/10;
                     i--;
                 }
                 q--;
                 while(c&&q>=0)
                 {
                     int m=c+str1[q]-'0';
                     str1[q]=m%10+'0';
                     c=m/10;
                     q--;
                 }
                 if(c>0)
                 {
                    strcpy(str2,str1);
                    str1[0]=c+'0';
                    strcpy(str1+1,str2);
                 }
             }
        }
        printf("%s\n",str1);
       
    }


     

  • 相关阅读:
    tableView Crash
    字典
    图片轮播器
    第三方,解决模型无法在获取网络数据之后传值问题
    tableView创建方法调用的研究
    IOS常用CGRect的交错,边缘,中心的检测
    log4j日志目录不自动生成的问题
    tomcat 配置虚拟路径
    Linux系统下文件属性:drwxr-xr-x意思
    springmvc json转对象时日期转化
  • 原文地址:https://www.cnblogs.com/dchipnau/p/4985937.html
Copyright © 2020-2023  润新知