zoukankan      html  css  js  c++  java
  • 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);
       
    }


     

  • 相关阅读:
    HDOJ_就这么个烂题总是WA先放这把
    [NYLG-OJ] 77 开灯问题(白书例题)
    [NEUQ-OJ] 1012 SZ斐波拉契数列
    福尔摩斯到某古堡探险
    第n个素数是多少?
    自然数的和之和
    水仙花数
    解决满屏显示问题的css样式:object-fit
    H5新属性audio音频和 video视频的控制
    用indexOf方法来去重
  • 原文地址:https://www.cnblogs.com/dchipnau/p/4985937.html
Copyright © 2011-2022 走看看