zoukankan      html  css  js  c++  java
  • 【洛谷p1932】A+B A-B A*B A/B A%B Problem

    (emmmm)

    这道题成功让我见识到了Dev撤回的高端大气上档(dàng)次。

    A+B A-B A*B A/B A%B Problem【传送门】(真是个优秀的高精)

    算法:::::::(模板题弄这么费劲干什么??)


    先说一下,代码没有完成!没有完成!没有完成!(高精除放弃)

     1  #include<iostream>//代码未ac
     2  #include<cstdio>
     3  #include<cmath>
     4  #include<algorithm>
     5  #include<string>
     6  #include<cstring>
     7  using namespace std;
     8  char a1[1010],b1[1010];
     9  int a[1010],b[1010],d[1010],e[1010],lena,lenb,lend;
    10  int c[10000001];
    11  void sum();
    12  void difference();
    13  void product();
    14  int main()
    15  {
    16      scanf("%s",a1);
    17      scanf("%s",b1);
    18      lena=strlen(a1);
    19      lenb=strlen(b1);
    20      for(int i=0;i<lena;i++){a[lena-i]=a1[i]-48;d[lena-i]=a[lena-i];}
    21      for(int i=0;i<lenb;i++){b[lenb-i]=b1[i]-48;e[lenb-i]=b[lenb-i];}
    22      sum();
    23      difference();
    24      product();
    25  }
    26  void sum()
    27  {
    28      int x=0,lenc=1;memset(c,0,sizeof(c));
    29      while(lenc<=lena||lenc<=lenb){
    30          c[lenc]=a[lenc]+b[lenc]+x;
    31          x=c[lenc]/10;
    32          c[lenc]%=10;                                                  
    33          lenc++;                                                
    34      }c[lenc]=x;
    35      if(c[lenc]==0)lenc--;
    36      for(int i=lenc;i>=1;i--)cout<<c[i];
    37      cout<<endl;
    38  }
    39  void difference()
    40  {
    41      memset(c,0,sizeof(c));
    42      if(strcmp(a1,b1)==0)
    43          cout<<strcmp(a1,b1)<<endl;
    44      else{
    45          if(lena<lenb||(lena==lenb&&strcmp(a1,b1)<0)){
    46              cout<<"-";
    47              int i=1;
    48              while(i<=lena||i<=lenb){
    49                  if(b[i]<a[i]){b[i]+=10;b[i+1]--;}
    50              c[i]=b[i]-a[i];
    51              i++;}lend=i;}
    52          else {
    53              int i=1;
    54              while(i<=lena||i<=lenb){
    55                  if(b[i]>a[i]){a[i]+=10;a[i+1]--;}
    56              c[i]=a[i]-b[i];
    57              i++;}lend=i;}
    58              while((c[lend]==0)&&lend>1)lend--;
    59              for(int j=lend;j>=1;j--)cout<<c[j];
    60                cout<<endl;
    61          }
    62      }
    63  void product()
    64  {
    65      memset(c,0,sizeof(c));
    66      for(int i=1;i<=lena;i++){int x=0;
    67          for(int j=1;j<=lenb;j++){
    68              c[i+j-1]=d[i]*e[j]+x+c[i+j-1];
    69              x=c[i+j-1]/10;
    70              c[i+j-1]%=10;
    71          }c[i+lenb]=x;
    72      }                               
    73      int lene=lena+lenb;
    74      while(c[lene]==0&&lene>1)lene--;
    75      for(int i=lene;i>=1;i--)cout<<c[i];
    76      cout<<endl;
    77  }//(可劲压行也没压下去)

    这个撤回真的如同韩学长说的:撤着撤着就不知道去哪了??害得我又改了好多……(好迷)

    嗯end-(悄咪咪地讲我用python水过的这个题)

  • 相关阅读:
    2019-6-23-win10-uwp-未给任务-GenerateAppxPackageRecipe-的必需参数-AppxManifestXml-赋值
    2018-8-17-C#-从零开始写-SharpDx-应用-控制台创建-Sharpdx-窗口
    QToolBox
    QListWidget
    宽字节 多字节 mbstowcs wcstombs
    va_start可变参数函数
    c语言二进制、八进制、十六进制
    文件锁 flock/fcntl
    volatile和锁
    串口应用程序
  • 原文地址:https://www.cnblogs.com/zhuier-xquan/p/10605984.html
Copyright © 2011-2022 走看看