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);
       
    }


     

  • 相关阅读:
    适配器
    MouseListener
    键盘事件KeyListener
    【转】CxImage图像库的使用
    【转】Qt Mode/View
    【转载】VC++中的图像类型转换--使用开源CxImage类库
    Qt5 文本编辑
    【转载】设备坐标(窗口/window)和逻辑坐标(视口/viewport)
    【转载】Qt中的QString,QByteArray,Qchar, char*
    QT中QWidget、QDialog及QMainWindow的区别
  • 原文地址:https://www.cnblogs.com/dchipnau/p/4985937.html
Copyright © 2011-2022 走看看